当前位置: 首页 > 面试题库 >

Laravel数据库迁移-重命名列错误-请求的未知数据库类型枚举

楚知
2023-03-14
问题内容

我正在使用Laravel 4.2。我在我的库中加载了以下库composer.json

"doctrine/dbal": "2.4.*",

我创建了以下迁移:

class RenameDeliveryNotesColumnOnOrderHeaderTable extends Migration {

    public function up()
    {
        Schema::table('order_header', function(Blueprint $table)
        {
            $table->renameColumn('delivery_notes', 'packing_notes');
        });
    }

}

delivery_notes列类型text

运行迁移时,出现以下错误:

[Doctrine \ DBAL \ DBALException]请求了未知的数据库类型枚举,Doctrine \ DBAL \ Platforms \
MySqlPlatform可能不支持它。

知道为什么我会收到此错误吗?我应该如何解决这个问题?我需要重命名表中的列。是否有其他方法可以重命名列?


问题答案:

Laravel的文档说:

注意enum不支持重命名列类型。

此处:https://github.com/laravel/framework/issues/1186

您可以找到有关此问题的一些解决方法。既然您说过本专栏不是enum,那么请看 @upngo 的评论:

“ …问题是重命名具有的表上的 ANYenum。”

另外,我发现这篇文章重点讨论此问题,并提出了可能对您有所帮助的选项。

http://www.paulbill.com/110/laravel-unknown-database-type-enum-requested-
doctrinedbalplatformsmysqlplatform-may-not-support-
it



 类似资料:
  • 我有两个表,事务表和付款表,它们在过去的迁移中已经存在。当我试图在它们之间建立一个透视表时,只会得到事务外键的一个错误。“payments”表上的另一个外键创建得很好。这绝对让我感到困惑,我之前关于这个错误的讨论都没有解决这个问题。 错误(参考,MAccounting是数据库的名称): *尽管错误似乎说,payment_transaction表创建成功,以及支付表的外键;唯一中断的是交易的外键。

  • 我正在为一个JPA项目进行集成测试。测试在嵌入式h2数据库上运行。但是,当我使用Hibernate模式生成时,我收到了h2的错误 错误为org。h2.jdbc。JdbcSQLException:未知数据类型:“INTERVAL”; h2文档表明支持间隔: http://www.h2database.com/html/datatypes.html#interval_type 我用的是h2版本1.4.

  • 本文向大家介绍Laravel 内部数据库迁移,包括了Laravel 内部数据库迁移的使用技巧和注意事项,需要的朋友参考一下 示例 每个迁移都应该有一个up()方法和一个down()方法。该up()方法的目的是执行所需的操作,以将数据库模式置于新状态,并且该down()方法的目的是使该方法执行的所有操作反向up()。确保该down()方法正确撤消您的操作对于能够回滚数据库架构更改至关重要。 示例迁移

  • 问题内容: 我正在使用Java开发数据库迁移工具。该工具将数据库表及其数据复制到目标数据库。但是我希望它可以在不同的数据库上工作。从mysql复制并在derby等中创建。使用JDBC,我们可以收集有关表及其列的足够信息。但是我要问的是,是否可以使用sql free在Java上重新创建表。我的意思是不同的数据库具有不同的数据类型,有时它们在sql语法上也有所不同。那么JDBC或任何其他库(可以是开放

  • 在开发和维护一个数据库驱动的应用程序时, 数据库的结构会像代码一样不断演变。 例如,在开发应用程序的过程中,会增加一张新表且必须得加进来; 在应用程序被部署到生产环境后,需要建立一个索引来提高查询的性能等等。 因为一个数据库结构发生改变的时候源代码也经常会需要做出改变, Yii 提供了一个 数据库迁移 功能,该功能可以记录数据库的变化, 以便使数据库和源代码一起受版本控制。 如下的步骤向我们展示了