我的数据库迁移中的外键

时间:2017-06-06 04:41:56

标签: laravel laravel-5 laravel-5.4

我正在开发一个laravel程序,我总是创建数据库,而我正在编写代码。现在,我想测试我的程序,所以我重置了我的所有数据库,并尝试迁移,突然出现此错误,任何人都知道为什么?

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'paket' already exists (SQL: create table `paket` (`id` int unsigned not null aut o_increment primary key, `produk_id` int unsigned not null, `nama` varchar(191) not null, `jumlah_user` int not null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate utf8mb4_unicode_ci)

这是我的数据库迁移:

  1. 用户:

    public function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('username')->unique(); $table->string('email')->unique(); $table->string('level'); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); }

  2. 一个名为paket的表:

    ```public function up()
    {
        Schema::create('paket',function(Blueprint $table){
          $table->increments('id');
          $table->integer('produk_id')->unsigned();
          $table->foreign('produk_id')->references('id')->on('produk');
          $table->string('nama');
          $table->integer('jumlah_user');
          // $table->date('tanggal_mulai');
          // $table->date('tanggal_terakhir');
          $table->timestamps();
        });
    }```
    
  3. 一张名为harga的表:

    public function up() { Schema::create('harga',function(Blueprint $table){ $table->increments('id'); $table->integer('paket_id')->unsigned(); $table->foreign('paket_id')->references('id')->on('paket'); $table->decimal('harga',13,2); $table->string('masa_training'); $table->string('masa_maintenance'); $table->date('tanggal_efektif'); $table->timestamps(); }); }

  4. 名为produk

    的表格

    public function up() { Schema::create('produk',function(Blueprint $table){ $table->increments('id'); $table->string('nama'); $table->timestamps(); }); }

  5. 感谢。

1 个答案:

答案 0 :(得分:0)

它解决了。
谢谢。

======
我所做的是:从master迁移表,并对其进行排序,以便首先迁移所有具有ID(即其他表中的外部ID)的表。
我要做的就是重命名我的文件名中的时间戳。