gpt4 book ai didi

mysql - Laravel 迁移 |在原始 SQL 中删除/创建表 没有错误,没有影响

转载 作者:行者123 更新时间:2023-11-30 21:29:44 24 4
gpt4 key购买 nike

对于一个新的 Laravel 项目,我需要使用现有的 MySQL 数据库(176 个表)。我不想为每个现有表创建一个 Laravel 迁移,所以我将数据库结构导出到一个 sql 文件。

在迁移中我想执行 SQL 文件,如下所示:

public function up()
{
DB::unprepared(file_get_contents('/path/to/file.sql'));
}

unprepared 返回 true 但导入似乎不会(完全)执行。没有错误,没有影响(有时会创建 1 或 2 个表,例如在执行 sql 文件之前删除并重新创建数据库之后)。

当我用 mysql source/path/to/file.sql 执行这个文件时,导入工作正常(会报告一些版本差异的错误,但执行继续)。

我的问题:出于测试目的,我想在迁移过程中从 SQL 文件创建 176 个旧表/现有表。我需要在迁移过程中更改一些表。

我不想为每个表创建迁移。

最佳答案

您可以按照以下步骤对所有表进行反向迁移:-

1)composer require --dev "xethron/migrations-generator"

2) 在 bootstrap/app -$app->register(\Way\Generators\GeneratorsServiceProvider::class); $app->register(\Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class);

3)在bootstrap/app.php中添加

class Application extends Laravel\Lumen\Application
{
/**
* Get the path to the application configuration files.
*
* @param string $path Optionally, a path to append to the config path
* @return string
*/
public function configPath($path = '')
{
return $this->basePath.DIRECTORY_SEPARATOR.'config'.($path ? DIRECTORY_SEPARATOR.$path : $path);
}
}

if (!function_exists('config_path')) {
/**
* Get the configuration path.
*
* @param string $path
* @return string
*/
function config_path($path = '')
{
return app()->basePath() . '/config' . ($path ? '/' . $path : $path);
}
}

if (!function_exists('app_path')) {
/**
* Get the path to the application folder.
*
* @param string $path
* @return string
*/
function app_path($path = '')
{
return app('path') . ($path ? DIRECTORY_SEPARATOR . $path : $path);
}
}

class_alias('Illuminate\Support\Facades\Config', 'Config');



$app = new Application(
realpath(__DIR__.'/../')
);

4) 在终端中编写 php artisan migrate:generate

5)改变

$app = new Application(
realpath(__DIR__.'/../')
);

$app = new Laravel\Lumen\Application(
realpath(__DIR__.'/../')
);

在 bootstrap/app.php 中

关于mysql - Laravel 迁移 |在原始 SQL 中删除/创建表 没有错误,没有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56881660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com