这个问题与此相似。
尽管这个问题似乎没有解决,但评论部分指出:
真正的可恢复迁移将在截断之前在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
}
1条答案
按热度按时间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。