如何在laravel迁移文件中截短前备份db表?

deikduxw  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(308)

这个问题与此相似。
尽管这个问题似乎没有解决,但评论部分指出:
真正的可恢复迁移将在截断之前在up()上创建表visitors的备份副本,然后将备份复制到原来的on down()上。
找不到执行上述步骤的任何工作解决方案。
如何在截断前获取db表的转储?找到了一些演示如何从 .sql 文件,但如果不首先导出数据,这在这里是没有帮助的。
代码如下所示:

class TruncateApiKeysTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        // take backup of current api_keys
        // run the truncate
        if (Schema::hasTable('api_keys')) {
            Schema::table('api_keys', function(Blueprint $table) {
                $table->truncate();
            });
        }
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
       // import data from the sql dump file
       // insert data into api_keys to revert changes
    }
fgw7neuy

fgw7neuy1#

解决方案1:在截断之前将现有记录保存为种子。使用 db to seeder 工具,如https://github.com/orangehill/iseed,你可以打电话 php artisan iseed my_table 在cli或 Artisan::call('iseed my_table'); 在php中。
解决方案2:创建一个备份mysql db,然后在截断之前将表保存在那里。意味着您将有一个mysql连接:
电流\u db
备份数据库
使用laravel可以轻松处理多个db。

相关问题