от
Для нового проекта 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
, импорт работает нормально (сообщается о некоторых ошибках в зависимости от версии, но выполнение продолжается). Мой вопрос: для целей тестирования я хочу создать
176 old/existing tables
из файла SQL во время процесса миграции. Мне нужно изменить некоторые таблицы в процессе миграции. Я не хочу создавать миграцию для каждой таблицы.              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Вы можете выполнить обратную миграцию для всех ваших таблиц, выполнив следующие действия: - 1) композитор требует --dev "xethron / migrations-generator" 2) в bootstrap / app - $ app-> register (\ Way \ Generators \ GeneratorsServiceProvider :: class);    $ App-> регистре (\ Xethron \ MigrationsGenerator \ MigrationsGeneratorServiceProvider :: класс); 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

4) напишите php artisan migrate: создайте в терминале

5) изменить

$app = new Application(
    realpath(__DIR__.'/../')
); 
в
$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);
в начальной загрузке / app.php     
...