在我的项目中,我正在从Codeigniter转移到Laravel,我也开始使用phpunit测试。在这个项目中,有许多遗留的数据库,没有任何类型的迁移。从它们中,我想自动生成一个用于集成测试的测试数据库。
但我的想法中有一个棘手的问题:如何自动生成现有的测试数据库,并在请求时对其进行核化?现有项目中没有数据库迁移,因此我需要在新生成的项目中创建它们。
到目前为止,我使用pg-dump生成了我的数据库的转储(我使用postgresql作为我的数据库)。转储是一个sql文件。我还使用以下命令创建了一个初始迁移:
php ./artisan make:migration --path ./database/migrations/myDb InitialDb它生成了以下代码:
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class InitialDb extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//Read and execute the sql dump.
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//Delete anything except the test data.
}
}所以我想知道如何在生成的转储中执行从生成的sql代码?
发布于 2019-10-17 17:19:09
您可以获得一些生成器包,它们将读取整个数据库并生成所需的迁移。我们过去在从另一个框架转换到laravel时已经做到了这一点。这不是来自转储文件,而是原始数据库本身,但我希望它能有所帮助!
https://www.5balloons.info/create-migration-files-from-existing-database-in-laravel/
https://stackoverflow.com/questions/58429024
复制相似问题