【问题标题】:Databse migration based on SQL in Laravel?Laravel中基于SQL的数据库迁移?
【发布时间】:2019-04-16 21:19:29
【问题描述】:

Laravel 是否允许使用基于 Workbench 中创建的现成 SQL 的数据库迁移作为选项?

据我所知,现在建议按照特定格式手动编写迁移文件。

【问题讨论】:

    标签: laravel laravel-5


    【解决方案1】:

    当然,没有什么可以阻止您在迁移中运行 SQL。您可以在迁移中使用 DB::statement()up() 内部执行此操作。

        \Illuminate\Support\Facades\DB::statement('
            create table application_pages_test
            (
                id int unsigned auto_increment
                    primary key,
                application_id tinyint unsigned not null,
                title varchar(64) not null,
                created_at timestamp null,
                updated_at timestamp null
            )
            collate=utf8_unicode_ci
        ;');
    

    【讨论】:

    • 好的,请问在这段代码中,SQL quest 应该放在哪里?
    • 我不确定你所说的“SQL quest”是什么意思。
    • SQL查询,打错字了
    • 任何 SQL 查询都可以进入字符串。我只是以create table 声明为例。如果您有多个 SQL 语句(多个分号),则需要拆分行并分别使用 DB::statement() 调用它们。
    【解决方案2】:

    是的,Laravel 允许使用在 Workbench 中创建的现成 SQL。你只需要将 Laravel 应用程序连接到数据库,就可以了。

    在 Laravel 中使用迁移不是强制性的,但在跟踪数据库结构的版本时非常有用。

    由于跟踪数据库的结构非常重要,我建议您尝试使用以下软件包之一将您的 SQL 转换为 Laravel 迁移:

    1. MySQL Workbench Export Laravel 5 Migrations Plugin – 插件 一个流行的软件MySQL Workbench,用 Python 语言编写
    2. Laravel Migration Exporter for Sequel Pro – Sequel 的捆绑包 专业版,可让您从现有的 Laravel 迁移文件 表。用 PHP 语言编写。

    3. Xethron Laravel Migrations Generator – Laravel 工匠命令 工具,作为 Laravel 包提供

    Source

    【讨论】:

    • 不创建迁移文件?或者你的意思只是从工作台导出 SQL 并导入到现有数据库?但是模型 Laravel 呢?
    • 你可以选择任何一种方式。我已经用包更新了答案,以帮助您将 SQL 转换为 Laravel 迁移。
    【解决方案3】:

    几周前,我们为可视化编辑器 Skipper (https://www.skipper18.com) 发布了对 Laravel 框架的支持。我想从您的问题来看,它可能对您非常有用。

    您可以从数据库(MySql、Postgres、MSSQL 或 Sqlite)导入您的项目,您将获得清晰的图形图表,然后您可以自动导出到模型类和迁移文件。

    此外,您可以在模型中进行更改并创建新的迁移并将所有更改重复导出回 Laravel PHP 文件。所有这一切都通过一个用户友好的界面实现。

    如果您想试用,它在测试期间完全免费。你可以在这里下载它https://www.skipper18.com/en/download 并在初始应用程序许可证屏幕中选择“Laravel Beta 许可证”。

    【讨论】:

      猜你喜欢
      • 2021-08-17
      • 2015-01-14
      • 2019-01-19
      • 2018-04-04
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-16
      相关资源
      最近更新 更多