【发布时间】:2019-04-16 21:19:29
【问题描述】:
Laravel 是否允许使用基于 Workbench 中创建的现成 SQL 的数据库迁移作为选项?
据我所知,现在建议按照特定格式手动编写迁移文件。
【问题讨论】:
Laravel 是否允许使用基于 Workbench 中创建的现成 SQL 的数据库迁移作为选项?
据我所知,现在建议按照特定格式手动编写迁移文件。
【问题讨论】:
当然,没有什么可以阻止您在迁移中运行 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
;');
【讨论】:
create table 声明为例。如果您有多个 SQL 语句(多个分号),则需要拆分行并分别使用 DB::statement() 调用它们。
是的,Laravel 允许使用在 Workbench 中创建的现成 SQL。你只需要将 Laravel 应用程序连接到数据库,就可以了。
在 Laravel 中使用迁移不是强制性的,但在跟踪数据库结构的版本时非常有用。
由于跟踪数据库的结构非常重要,我建议您尝试使用以下软件包之一将您的 SQL 转换为 Laravel 迁移:
Laravel Migration Exporter for Sequel Pro – Sequel 的捆绑包 专业版,可让您从现有的 Laravel 迁移文件 表。用 PHP 语言编写。
Xethron Laravel Migrations Generator – Laravel 工匠命令 工具,作为 Laravel 包提供
【讨论】:
几周前,我们为可视化编辑器 Skipper (https://www.skipper18.com) 发布了对 Laravel 框架的支持。我想从您的问题来看,它可能对您非常有用。
您可以从数据库(MySql、Postgres、MSSQL 或 Sqlite)导入您的项目,您将获得清晰的图形图表,然后您可以自动导出到模型类和迁移文件。
此外,您可以在模型中进行更改并创建新的迁移并将所有更改重复导出回 Laravel PHP 文件。所有这一切都通过一个用户友好的界面实现。
如果您想试用,它在测试期间完全免费。你可以在这里下载它https://www.skipper18.com/en/download 并在初始应用程序许可证屏幕中选择“Laravel Beta 许可证”。
【讨论】: