【问题标题】:how to create migration from existing database in laravel如何从 laravel 中的现有数据库创建迁移
【发布时间】:2014-08-03 18:10:11
【问题描述】:

我是laravel 的新手。我知道从laravel迁移创建数据库的命令。

我已经在mysql 中创建了数据库。那么我怎样才能从该数据库转换迁移。

【问题讨论】:

    标签: laravel laravel-4


    【解决方案1】:

    您可以使用 Jeffrey Way 的 Laravel 4 生成器工具,并手动完成。这是一个非常有用的工具。 https://github.com/JeffreyWay/Laravel-4-Generators(如果你使用的是 Laravel 5,请改用这个包:https://github.com/laracasts/Laravel-5-Generators-Extended

    或者您可以尝试以下软件包之一,它们应该将您现有的架构转换为 Laravel 迁移。我没有尝试过,但看看:

    另外,在另一个问题中阅读以下答案,可能对您或其他人有用:Reverse engineering or Auto-Generations of Entities in Laravel?

    【讨论】:

    【解决方案2】:

    我快速编写了这个 python 脚本来从现有数据库中生成迁移文件。

    https://github.com/aljorhythm/sql-to-laravel-migrations

    设置好后就做

    python retrieve-and-convert.py
    

    【讨论】:

    • 这个方案还提供了一个PHP脚本。
    【解决方案3】:

    简单的解决方案,为您现有的 SQL 表模式使用在线 Laravel 迁移生成器,而无需安装任何包。只需输入您的 SQL 模式并获取 Laravel 迁移文件。 试试看:https://laravelarticle.com/laravel-migration-generator-online

    【讨论】:

    • 这首先看起来是一个有用的工具。除了绝对最琐碎和最普通的 SQL 之外,它会立即使用任何东西。除了绝对最微不足道的情况外,这不是为所有人生成迁移的有用方法。
    • 我不知道这个工具有多老了,但它的麻烦多于它的价值。对于字段`status` int(1) NOT NULL DEFAULT 1 的SQL 创建表定义,它正在输出类似$table->integer('status',1)->default(1) 的行。 integer() 的第二个参数是自动增量布尔值。所以我不断收到there can be only one auto column之类的错误。
    【解决方案4】:

    如果您不介意在项目中使用 Doctrine 2 而不是内置逆向工程的 Eloquent。

    【讨论】:

      【解决方案5】:

      这个怎么样?

      Migrations Generator.是给Laravel 4、5、6、7用的,不知道是不是给Laravel 8用的

      【讨论】:

      • (09-2020) 在全新安装 Laravel 8 时失败。真可惜。
      • 显然刚刚添加了 Laravel 8 支持。
      【解决方案6】:

      对于现代版本的 Laravel,您可能应该使用像 https://github.com/kitloong/laravel-migrations-generator 这样的包

      【讨论】:

        猜你喜欢
        • 2014-06-24
        • 2018-05-31
        • 2014-05-03
        • 1970-01-01
        • 1970-01-01
        • 2018-05-22
        • 1970-01-01
        • 2016-02-17
        • 2016-02-28
        相关资源
        最近更新 更多