laravel 数据库迁移转 sql 语句

可以使用下面的命令

 php artisan migrate --pretend --no-ansi  

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

 

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

<?php

namespace App\Console\Commands;

use Illuminate\Contracts\Bus\SelfHandling;

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) . ";\n";
            }
        }

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

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

转载于:https://www.cnblogs.com/eleven24/p/9405031.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值