在 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' => 'migrations'
部分。
添加config/database.php
的放置位置可能会很好以上是关于在 Lumen 中执行迁移时未设置表名的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB 和 Artisan 在 Laravel 5 和 Lumen 上进行迁移
Laravel/Lumen 5.3.3:在迁移中覆盖 env 值
使用 Workbench 从 MSSQL 迁移到 MySQL 时未从源中检索模式列表