我使用mysql workbench设计了一个数据库并进行同步,然后我的mysql数据库存在@ phpmyadmin。那么如何在laravel中使用这个数据库..我的意思是我需要为现有数据库创建迁移文件并继续编辑..
答案 0 :(得分:2)
您应该编写迁移文件,这样您的架构可以从零构建而无需手动干预。但是,如果您不能或不想这样做,您可以从您想要的点开始迁移:
php artisan make:migration blablabla
编写新架构并:
php artisan migrate
等等。
答案 1 :(得分:0)
你可以这个包 Migrations Generator
php artisan migrate:generate
以生成当前数据库中所有表的迁移。要为特定表生成迁移,请运行php artisan migrate:generate table1,table2,table3,table4,table5
。答案 2 :(得分:0)
在开发阶段,您可以使用:https://github.com/awssat/laravel-sync-migration
通过使用:
php artisan migrate:sync
但是我不建议您将其用于生产,因为您无法跟踪迁移更改
答案 3 :(得分:0)
我的情况如下:
尝试了所有事情之后,我决定多走一英里,以这种方式解决我的问题:
我在临时控制器中创建了一个方法。基本上,它将检查我的所有迁移类在database / migrations文件夹中,然后检查它们是否存在于迁移表中。如果不是,请将其插入表中。从浏览器调用了该方法,现在一切都同步了
public function syncMigration(){
$migrations_folder = database_path('migrations');
$filesInFolder = File::files($migrations_folder);
$lastMigration = DB::table('migrations')->orderBy('batch', 'desc')->limit(1)->first();
var_dump($lastMigration);
$batch = $lastMigration->batch +1;
foreach($filesInFolder as $path) {
$file = pathinfo($path);
$migration = DB::table('migrations')->where('migration', $file['filename'])->first();
if(!$migration){
DB::table('migrations')->insert(
[
'migration' => $file['filename'],
'batch' => $batch
]
);
}
}
}