使用laravel冲突表名

时间:2015-05-11 16:25:03

标签: sqlite laravel laravel-5

我正在尝试设置我的表格并且没有将我的数据放入表中并尝试执行DB:table('tableName')->insert($variable);

我已经有tableName的迁移,并且认为我正在向此迁移中插入数据,但实际上它似乎创建了一个具有相同名称的不同表。

所以现在当我尝试运行php artisan migrate时,我收到错误。我查看了sqlite数据库,但没有看到重复的表。

我找不到如何修复此错误。我运行每个迁移命令尝试返回但没有任何作用。

错误: [Illuminate\Database\QueryException] SQLSTATE[HY000]: General error: 1 table "regions" already exists (SQL: create table "regions" ("id" integer not null primary key autoincrement, "user_id" integer not null, "start" float not null, "end" float not null, "data" text not null, "created_at" datetime null, "updated_at" datetime null, "remember_token" varchar null, foreign key("user_id") references "users"("id") on delete cascade)) [PDOException] SQLSTATE[HY000]: General error: 1 table "regions" already exists

2 个答案:

答案 0 :(得分:1)

您需要进入并手动删除该表(和/或具有相同名称的“其他”表。

然后重新运行迁移,它将相应地填充。之后,您应该能够运行以下内容来“更新”您通过迁移文件更改的表:

php artisan migrate:refresh

在设置表后手动添加内容 - 尝试使用种子:

php artisan db:seed

答案 1 :(得分:0)

解决这个问题我必须

  1. 重命名我的迁移表名称(这是原始名称)
  2. 从命令行输入sqlite db。 (我现在可以看到冲突的表,我以前不能)
  3. 删除区域表(导致名称冲突的表)
  4. 更改迁移表名称。 (在我的编辑器中,而不是从命令行)
  5. 再次输入sqlite db并将更改的表名称(这是与我的迁移关联的原始名称)重命名为原始名称。
  6. run artisan:refresh
  7. 编辑以添加更多详细信息

相关问题