1
0
Fork 0

Update migration to add pgsql support

This commit is contained in:
Daniel Supernault 2018-10-16 20:39:22 -06:00
parent 875253dbba
commit e69a1ce8af
No known key found for this signature in database
GPG Key ID: 0DEF1C662C9033F7
1 changed files with 24 additions and 1 deletions

View File

@ -13,7 +13,30 @@ class UpdateStatusVisibilityDefaults extends Migration
*/
public function up()
{
DB::statement("ALTER TABLE statuses CHANGE COLUMN visibility visibility ENUM('public','unlisted','private','direct', 'draft') NOT NULL DEFAULT 'public'");
$type = config('database.default');
switch($type)
{
case 'mysql':
DB::statement("ALTER TABLE statuses CHANGE COLUMN visibility visibility ENUM('public','unlisted','private','direct', 'draft') NOT NULL DEFAULT 'public'");
break;
case 'pgsql':
$sql = <<<'SQL'
# rename the existing type
ALTER TYPE visibility_enum RENAME TO visibility_enum_old;
# create the new type
CREATE TYPE visibility_enum AS ENUM('public','unlisted','private','direct', 'draft');
# update the columns to use the new type
ALTER TABLE statuses ALTER COLUMN visibility TYPE visibility_enum USING visibility::text::visibility_enum;
# remove the old type
DROP TYPE visibility_enum_old;
SQL;
DB::statement($sql);
break;
}
}
/**