Saya sedang menulis semula aplikasi web yang ditulis dalam php
和 laravel
ke dalam timbunan JavaScript. Pada masa ini saya sedang mereka bentuk semula skema pangkalan data saya, yang nampaknya mysql kepada postgres.
Saya agak keliru tentang beberapa sintaks create table
perintah berikut
public function up() { Schema::create('sessions', function (Blueprint $table) { $table->string('id')->unique(); $table->unsignedInteger('user_id')->nullable(); $table->string('ip_address', 45)->nullable(); $table->text('user_agent')->nullable(); $table->text('payload'); $table->integer('last_activity'); }); }
Dari pemahaman saya, persamaan postgres
di atas ialah
create table sessions ( id text unique not null, user_id int references users, ip_address text, user_agent text, payload text, last_activity integer );
Tetapi saya tidak pasti sama ada saya menterjemahnya dengan betul $table->string('ip_address', 45)->nullable();
,因为我不确定 string('ip_address', 45 )
sedang melakukannya.
Adakah penukaran saya kepada potgres betul, atau adakah sesuatu yang perlu saya ubah untuk mendapatkan yang setara dalam arahan create postgres?
Sebagai contoh, anda boleh memanfaatkan penghijrahan arahan
artisan
seperti yang dimaksudkan oleh pembangun. Ia diterangkan dalam Cara Menukar Migrasi Laravel kepada Skrip SQL Mentah Anda boleh menggunakan:Walau bagaimanapun, ia disertakan dengan kaveat, anda perlu mempunyai pelayan pangkalan data yang tersedia untuk ini benar-benar berfungsi. Ia akan mencipta jadual
migrations
表(如果不存在),但不会在迁移中创建任何表。它还将遵循migrations
表,因此您可能需要在运行pretend
之前使用新数据库或截断migrations
dalam pangkalan data sasaran.Sebagai alternatif, anda boleh menggali Kod "sintaks" SQL Laravel dan ketahui. Malangnya, belum ada sesiapa yang membuat jadual rujukan yang mudah dibaca untuknya.
Dalam kes anda, ia secara kasarnya diterjemahkan seperti berikut:
$table->string('id')->unique();
id varchar
$table->unsignedInteger('user_id')->nullable();
user_id 整数 null
$table->string('ip_address', 45)->nullable();
ip_address varchar(45) null
$table->text('user_agent')->nullable();
user_agent varchar null
$table->text('payload');
有效负载文本
$table->integer('last_activity');
last_activity 整数