You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
36 lines
1.1 KiB
USE dating_app;
|
|
|
|
-- Country is stored on the profile so discovery can rank same-city users first,
|
|
-- then users in the same country. Matching percentages are calculated from
|
|
-- existing interests and Feed answers, so no persisted score column is needed.
|
|
SET @column_exists = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.columns
|
|
WHERE table_schema = DATABASE()
|
|
AND table_name = 'user_profiles'
|
|
AND column_name = 'country'
|
|
);
|
|
SET @statement = IF(
|
|
@column_exists = 0,
|
|
'ALTER TABLE user_profiles ADD COLUMN country VARCHAR(120) NULL AFTER city',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE migration_statement FROM @statement;
|
|
EXECUTE migration_statement;
|
|
DEALLOCATE PREPARE migration_statement;
|
|
|
|
SET @index_exists = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.statistics
|
|
WHERE table_schema = DATABASE()
|
|
AND table_name = 'user_profiles'
|
|
AND index_name = 'ix_user_profiles_city_country'
|
|
);
|
|
SET @statement = IF(
|
|
@index_exists = 0,
|
|
'CREATE INDEX ix_user_profiles_city_country ON user_profiles (city, country)',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE migration_statement FROM @statement;
|
|
EXECUTE migration_statement;
|
|
DEALLOCATE PREPARE migration_statement;
|
|
|