php - 移植到 Laravel:从原始 SQL 转储迁移
问题描述
在我的项目中,我正在从 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 代码?
解决方案
您可以获得一些生成器包,它们将读取数据库并生成您需要的迁移。我们过去在从另一个框架转换为 laravel 时已经这样做了。这不是来自转储文件,而是来自原始数据库本身,但我希望它无论如何都会有所帮助!
https://www.5balloons.info/create-migration-files-from-existing-database-in-laravel/
推荐阅读
- android - 如何设置 LiveData
- > 到 MutableLiveData
- >?
- python - 如何在 python 中实现正态性检查功能?
- linux - 如何使用 curl 和 printf 打印 ftp 文件信息
- c++ - _ZdlPvj 程序入口点在 DLL 中找不到
Exe.exe 。我该如何解决? - c# - 如何正确打开新表单并关闭现有表单而不会出现任何错误?
- python - 使用 python scrapy 没有得到结果
- javascript - 将另一个数组中的数组对象打印成javascript中的特定格式
- paypal - 用于试用期订阅的 PayPal IPN
- c# - 如何通过 Unity 访问服务器上的 PHP 文件以进行 MySQL 数据库操作?
- javascript - 如何使用猫鼬更新现有用户的密码?