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