diff --git a/app/Collection.php b/app/Collection.php index e0e110f2e..2e46078c2 100644 --- a/app/Collection.php +++ b/app/Collection.php @@ -3,9 +3,19 @@ namespace App; use Illuminate\Database\Eloquent\Model; +use Pixelfed\Snowflake\HasSnowflakePrimary; class Collection extends Model { + use HasSnowflakePrimary; + + /** + * Indicates if the IDs are auto-incrementing. + * + * @var bool + */ + public $incrementing = false; + public function profile() { return $this->belongsTo(Profile::class); diff --git a/app/CollectionItem.php b/app/CollectionItem.php index 7e306a33e..0a3f72cb8 100644 --- a/app/CollectionItem.php +++ b/app/CollectionItem.php @@ -3,9 +3,19 @@ namespace App; use Illuminate\Database\Eloquent\Model; +use Pixelfed\Snowflake\HasSnowflakePrimary; class CollectionItem extends Model { + use HasSnowflakePrimary; + + /** + * Indicates if the IDs are auto-incrementing. + * + * @var bool + */ + public $incrementing = false; + public function collection() { return $this->belongsTo(Collection::class); diff --git a/database/migrations/2019_04_25_200411_add_snowflake_ids_to_collections_table.php b/database/migrations/2019_04_25_200411_add_snowflake_ids_to_collections_table.php new file mode 100644 index 000000000..10392de1f --- /dev/null +++ b/database/migrations/2019_04_25_200411_add_snowflake_ids_to_collections_table.php @@ -0,0 +1,43 @@ +getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string'); + } + + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::table('collections', function (Blueprint $table) { + $table->dropPrimary('id'); + $table->bigInteger('id')->unsigned()->primary()->change(); + }); + + Schema::table('collection_items', function (Blueprint $table) { + $table->dropPrimary('id'); + $table->bigInteger('id')->unsigned()->primary()->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('collections', function (Blueprint $table) { + // + }); + } +}