Rename column

This commit is contained in:
Till Faelligen 2022-06-13 07:15:59 +02:00
parent 3fea5d791f
commit ecad5ce774
4 changed files with 21 additions and 21 deletions

View file

@ -16,10 +16,10 @@ func LoadProfilePrimaryKey(m *sqlutil.Migrations, s gomatrixserverlib.ServerName
} }
func UpProfilePrimaryKey(tx *sql.Tx) error { func UpProfilePrimaryKey(tx *sql.Tx) error {
_, err := tx.Exec(fmt.Sprintf(`ALTER TABLE account_profiles ADD COLUMN IF NOT EXISTS servername TEXT NOT NULL DEFAULT '%s'; _, err := tx.Exec(fmt.Sprintf(`ALTER TABLE account_profiles ADD COLUMN IF NOT EXISTS server_name TEXT NOT NULL DEFAULT '%s';
ALTER TABLE account_profiles DROP CONSTRAINT account_profiles_pkey; ALTER TABLE account_profiles DROP CONSTRAINT account_profiles_pkey;
ALTER TABLE account_profiles ADD PRIMARY KEY (localpart, servername); ALTER TABLE account_profiles ADD PRIMARY KEY (localpart, server_name);
ALTER TABLE account_profiles ALTER COLUMN servername DROP DEFAULT;`, serverName)) ALTER TABLE account_profiles ALTER COLUMN server_name DROP DEFAULT;`, serverName))
if err != nil { if err != nil {
return fmt.Errorf("failed to execute upgrade: %w", err) return fmt.Errorf("failed to execute upgrade: %w", err)
} }
@ -27,7 +27,7 @@ func UpProfilePrimaryKey(tx *sql.Tx) error {
} }
func DownProfilePrimaryKey(tx *sql.Tx) error { func DownProfilePrimaryKey(tx *sql.Tx) error {
_, err := tx.Exec(`ALTER TABLE account_profiles DROP COLUMN IF EXISTS servername; _, err := tx.Exec(`ALTER TABLE account_profiles DROP COLUMN IF EXISTS server_name;
ALTER TABLE account_profiles ADD PRIMARY KEY(localpart);`) ALTER TABLE account_profiles ADD PRIMARY KEY(localpart);`)
if err != nil { if err != nil {
return fmt.Errorf("failed to execute downgrade: %w", err) return fmt.Errorf("failed to execute downgrade: %w", err)

View file

@ -32,29 +32,29 @@ CREATE TABLE IF NOT EXISTS account_profiles (
-- The Matrix user ID localpart for this account -- The Matrix user ID localpart for this account
localpart TEXT NOT NULL, localpart TEXT NOT NULL,
-- The server this user belongs to -- The server this user belongs to
servername TEXT NOT NULL, server_name TEXT NOT NULL,
-- The display name for this account -- The display name for this account
display_name TEXT, display_name TEXT,
-- The URL of the avatar for this account -- The URL of the avatar for this account
avatar_url TEXT, avatar_url TEXT,
PRIMARY KEY (localpart, servername) PRIMARY KEY (localpart, server_name)
); );
` `
const insertProfileSQL = "" + const insertProfileSQL = "" +
"INSERT INTO account_profiles(localpart, display_name, avatar_url, servername) VALUES ($1, $2, $3, $4)" "INSERT INTO account_profiles(localpart, display_name, avatar_url, server_name) VALUES ($1, $2, $3, $4)"
const selectProfileByLocalpartSQL = "" + const selectProfileByLocalpartSQL = "" +
"SELECT localpart, display_name, avatar_url FROM account_profiles WHERE localpart = $1 AND servername = $2" "SELECT localpart, display_name, avatar_url FROM account_profiles WHERE localpart = $1 AND server_name = $2"
const setAvatarURLSQL = "" + const setAvatarURLSQL = "" +
"UPDATE account_profiles SET avatar_url = $1 WHERE localpart = $2 AND servername = $3" "UPDATE account_profiles SET avatar_url = $1 WHERE localpart = $2 AND server_name = $3"
const setDisplayNameSQL = "" + const setDisplayNameSQL = "" +
"UPDATE account_profiles SET display_name = $1 WHERE localpart = $2 AND servername = $3" "UPDATE account_profiles SET display_name = $1 WHERE localpart = $2 AND server_name = $3"
const selectProfilesBySearchSQL = "" + const selectProfilesBySearchSQL = "" +
"SELECT localpart, display_name, avatar_url, servername FROM account_profiles WHERE localpart LIKE $1 OR display_name LIKE $1 LIMIT $2" "SELECT localpart, display_name, avatar_url, server_name FROM account_profiles WHERE localpart LIKE $1 OR display_name LIKE $1 LIMIT $2"
type profilesStatements struct { type profilesStatements struct {
serverNoticesLocalpart string serverNoticesLocalpart string

View file

@ -20,14 +20,14 @@ func UpProfilePrimaryKey(tx *sql.Tx) error {
ALTER TABLE account_profiles RENAME TO account_profiles_tmp; ALTER TABLE account_profiles RENAME TO account_profiles_tmp;
CREATE TABLE IF NOT EXISTS account_profiles ( CREATE TABLE IF NOT EXISTS account_profiles (
localpart TEXT NOT NULL, localpart TEXT NOT NULL,
servername TEXT NOT NULL, server_name TEXT NOT NULL,
display_name TEXT, display_name TEXT,
avatar_url TEXT, avatar_url TEXT,
PRIMARY KEY (localpart, servername) PRIMARY KEY (localpart, server_name)
); );
INSERT INSERT
INTO account_profiles ( INTO account_profiles (
localpart, servername, display_name, avatar_url localpart, server_name, display_name, avatar_url
) SELECT ) SELECT
localpart, '%s', display_name, avatar_url localpart, '%s', display_name, avatar_url
FROM account_profiles_tmp; FROM account_profiles_tmp;

View file

@ -32,29 +32,29 @@ CREATE TABLE IF NOT EXISTS account_profiles (
-- The Matrix user ID localpart for this account -- The Matrix user ID localpart for this account
localpart TEXT NOT NULL, localpart TEXT NOT NULL,
-- The server this user belongs to -- The server this user belongs to
servername TEXT NOT NULL, server_name TEXT NOT NULL,
-- The display name for this account -- The display name for this account
display_name TEXT, display_name TEXT,
-- The URL of the avatar for this account -- The URL of the avatar for this account
avatar_url TEXT, avatar_url TEXT,
PRIMARY KEY (localpart, servername) PRIMARY KEY (localpart, server_name)
); );
` `
const insertProfileSQL = "" + const insertProfileSQL = "" +
"INSERT INTO account_profiles(localpart, display_name, avatar_url, servername) VALUES ($1, $2, $3, $4)" "INSERT INTO account_profiles(localpart, display_name, avatar_url, server_name) VALUES ($1, $2, $3, $4)"
const selectProfileByLocalpartSQL = "" + const selectProfileByLocalpartSQL = "" +
"SELECT localpart, display_name, avatar_url FROM account_profiles WHERE localpart = $1 AND servername = $2" "SELECT localpart, display_name, avatar_url FROM account_profiles WHERE localpart = $1 AND server_name = $2"
const setAvatarURLSQL = "" + const setAvatarURLSQL = "" +
"UPDATE account_profiles SET avatar_url = $1 WHERE localpart = $2 AND servername = $3" "UPDATE account_profiles SET avatar_url = $1 WHERE localpart = $2 AND server_name = $3"
const setDisplayNameSQL = "" + const setDisplayNameSQL = "" +
"UPDATE account_profiles SET display_name = $1 WHERE localpart = $2 AND servername = $3" "UPDATE account_profiles SET display_name = $1 WHERE localpart = $2 AND server_name = $3"
const selectProfilesBySearchSQL = "" + const selectProfilesBySearchSQL = "" +
"SELECT localpart, display_name, avatar_url, servername FROM account_profiles WHERE localpart LIKE $1 OR display_name LIKE $1 LIMIT $2" "SELECT localpart, display_name, avatar_url, server_name FROM account_profiles WHERE localpart LIKE $1 OR display_name LIKE $1 LIMIT $2"
type profilesStatements struct { type profilesStatements struct {
db *sql.DB db *sql.DB