laravel 数据库迁移转 sql 语句

Posted 白桂任的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel 数据库迁移转 sql 语句相关的知识,希望对你有一定的参考价值。

可以使用下面的命令

 php artisan migrate --pretend --no-ansi  

 当然,你需要有可以 migrate 的东西。

 

数据库迁移导出到文件(使用命令)

<?php

namespace AppConsoleCommands;

use IlluminateContractsBusSelfHandling;

class MigrateToSql implements SelfHandling
{
    protected $signature = ‘migrate_to_sql‘;

    protected $description = ‘数据库迁移转 sql‘;

    /**
     * Execute the command.
     *
     * @return void
     */
    public function handle()
    {
        $command = PHP_BINARY . ‘ ‘ . base_path(‘artisan‘) . ‘ migrate --pretend --no-ansi‘;
        exec($command, $output);

        $sql = ‘‘;
        if (count($output) > 0) {
            foreach ($output as $line) {
                $sql .= preg_replace(‘/.*?:/‘, ‘‘, $line) . ";
";
            }
        }

        $file = database_path(‘sqls/‘ . date(‘Y-m-d H:i:s‘) . ‘.sql‘);
        file_put_contents($file, $sql);
    }
}

  上面的一些处理是把一些无效的信息去掉,如时间戳,这样最后剩下的就是可以直接执行的 sql 语句了。

以上是关于laravel 数据库迁移转 sql 语句的主要内容,如果未能解决你的问题,请参考以下文章

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

从迁移中显示 Laravel SQL

SQL Select 语句的用法

Laravel 5.4数据库迁移不起作用[重复]

获取 laravel 4 迁移执行的原始 SQL

FlywayDB:迁移失败并显示“执行语句错误”,但手动运行迁移 SQL 代码有效