Bagaimana cara memperbaiki kesalahan pembuatan bidang di Laravel 5.3?

Saya memiliki migrasi yang membuat tabel dengan benar di server gelandangan lokal, tetapi ketika saya mencoba bermigrasi di VPS dengan nginx, terjadi kesalahan aneh.

Env lokal adalah Vagrant/homestead (saya tidak tahu OS, maaf), VPS env adalah Debian 8, nginx. Laravel versi 5.3 Migrasi harus membuat 12 tabel, namun terjadi masalah sebelum proses akhir, sehingga hanya dibuat 10 tabel. Ngomong-ngomong, ini menunjukkan bahwa env dan pengaturan lainnya OK (menurut saya) dan hanya di 1 tabel 1 bidang yang error

ini adalah kode pembuatan:

public function up()
    {
        Schema::create('vicards', function (Blueprint $table) {
            $table->increments('id');
            $table->string('visi_slug', 100);
            $table->unique('visi_slug', 'visi_slug_unique');
            $table->integer('user_id');
            $table->index('user_id', 'cards_user_id_index');
            $table->string('user_slug', 100);
            $table->index('user_slug', 'cards_user_slug_index');
            $table->string('avatar', 44)->default(0);
            $table->string('header', 80);
            $table->string('price', 12);
            $table->text('description');
            $table->text('pictures'); // 5 pics * 20 symbols + 4 commas
            $table->text('videos'); // 3 videos * 41 symbols + 2 commas
            $table->text('contacts'); //
            $table->text('links'); // links separated by commas
            $table->text('styles'); // object serialized
            $table->tinyInteger('actual', 1)->default(0);
            $table->timestamps();
        });
    }

masalah memanggil bidang ini

$table->tinyInteger('actual', 1)->default(0);

tukang menafsirkannya dalam:

 `actual` tinyint not null default '0' auto_increment primary key

dan tentu saja ini kesalahan karena 'peningkatan_otomatis kunci utama' sudah ada - bidang pertama

Hasil yang diharapkan adalah pembuatan tabel secara teratur.

Saya mendapat kesalahan:

" [Illuminate\Database\QueryException] SQLSTATE[42000]: Kesalahan sintaksis atau pelanggaran akses: 1067 Nilai default tidak valid untuk 'aktual' (SQL: buat tabel vicards (id int unsigned bukan null kunci utama kenaikan_otomatis, visi_slug varchar(100) bukan nol , user_id int bukan nol, user_slug varchar(100) bukan nol, avatar varchar (44) bukan nol default '0', header varchar(80) bukan nol, price varchar(12) bukan nol, description teks bukan nol, pictures teks bukan null, videos teks bukan null, contacts teks bukan null, links teks bukan null, styles teks bukan null, actual tinyint bukan null default '0' auto_inc rement kunci utama, created_at stempel waktu null, updated_at stempel waktu null) kumpulan karakter default utf8 susun utf8_unicode_ci) "

Apa penyebab kesalahan ini? Tolong bantu saya.


person Vlad    schedule 28.05.2019    source sumber


Jawaban (1)


Jangan gunakan nilai panjang, cukup buat tinyint dengan nilai default:

$table->tinyInteger('actual')->default(0);
person Martin    schedule 28.05.2019
comment
Terima kasih! Saya menggunakan instruksi Anda dan itu menyelamatkan saya. Satu lagi terima kasih! - person Vlad; 29.05.2019
comment
hal. @Martin Saya memberi +1 pada jawaban Anda tetapi reputasi saya tidak cukup untuk hasil visualnya. - person Vlad; 29.05.2019