在 Lumen 中执行迁移时未设置表名

Posted

技术标签:

【中文标题】在 Lumen 中执行迁移时未设置表名【英文标题】:No table name set on execute migration in Lumen 【发布时间】:2015-12-29 00:35:07 【问题描述】:

尝试在 Lumen Framework 中运行迁移时遇到此错误:

$ php artisan migrate:install

 [Illuminate\Database\QueryException]                                                                   
  SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name '' (SQL: create table ``  
   (`migration` varchar(255) not null, `batch` int not null) default character set utf8 collate utf8_unicode_ci)     

  [PDOException]                                                                   
  SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name '' 

现在我不知道发生了什么。

请注意,未创建的表是完全控制迁移的表。

【问题讨论】:

我们也没有...你试过用谷歌搜索错误吗? 我有,但没有发现类似的东西。另外,我已经尝试重新安装整个系统,但仍然是同样的错误 在您的一个迁移文件中,您已将表名设置为空白/空。请仔细检查所有迁移文件,并确保它们都具有表名。 确保在你的迁移中你有类似这样的东西:Schema::create('tableName', function (Blueprint $table) //table fields 迁移文件没问题。一个不起作用的是迁移表,当我运行php artisan migration:install 【参考方案1】:

我自己找到了解决方案!

只需在数据库配置数组中添加表名即可!

'migrations' => 'migrations',

【讨论】:

为我工作,多么愚蠢的事情。当您创建自定义 config/database.php 文件(在 Lumen 中)时,您必须将此解决方案添加到主数组中的“连接”级别。 这对我有用,我在错误的地方添加了这个提示。它应该添加到连接映射之外。详情请查看github.com/laravel/lumen-framework/issues/248 也为我工作,正如你所说,这是一个非常愚蠢的问题;为什么它仍然不是文档? 拯救了我的一天。电视 你是真神【参考方案2】:
<?php
return [

    'default' => 'external',
    'migrations' => 'migrations',
    'connections' => [
        // your connections
    ],
];

【讨论】:

这里的关键是:你需要'migrations' =&gt; 'migrations' 部分。 添加config/database.php的放置位置可能会很好

以上是关于在 Lumen 中执行迁移时未设置表名的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 和 Artisan 在 Laravel 5 和 Lumen 上进行迁移

Laravel/Lumen 5.3.3:在迁移中覆盖 env 值

使用 Workbench 从 MSSQL 迁移到 MySQL 时未从源中检索模式列表

Laravel/lumen 5.2 从现有数据库生成迁移表

工匠迁移结果:SQLSTATE [HY000]:一般错误:LUMEN / LARAVEL 上的 1005

Spring Boot 应用程序在启动时未运行 Flyway 迁移