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

View file

@ -13,7 +13,30 @@ class UpdateStatusVisibilityDefaults extends Migration
*/ */
public function up() public function up()
{ {
$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'"); 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;
}
} }
/** /**