2015-04-22 2 views
2

У меня есть большой проект в laravel 4, и мне нужно создать новую базу данных с множеством таблиц на лету. Я могу сделать пустую базу данных «на лету», но как заполнить ее таблицами? Я не могу использовать миграцию «на лету», потому что у этого приложения много прав, поэтому пользователь не может их передать.Клонировать базу данных или запускать sql dump на лету в laravel 4

Первый вариант заключается в клонировании пустой базы данных (пустой от данных, но с таблицами). Второй вариант запускает файл sql dump на лету.

Может кто-нибудь объяснить мне, как это сделать?

ответ

0

Laravel предоставляет возможность заполнить базу данных путем посева. проверьте docs.

Laravel также включает простой способ засеять вашу базу данных с помощью теста данных с использованием классов семян. Все семенные классы хранятся в приложении/базе данных/семенах. Семенные классы могут иметь любое имя, которое вы хотите, но , вероятно, должны следовать разумным соглашениям, таким как UserTableSeeder и т. Д. По умолчанию для класса DatabaseSeeder указан . Из этого класса вы можете использовать метод вызова для запуска других классов посещений , что позволяет вам контролировать порядок посева.

после определения класса семян. Вы можете засеять базу данных с помощью команды

php artisan db:seed 

проверить это blog post о том, как использовать видеть, а также faker library для предварительного заполнения databased с реальным, как тестовых данных.

если вы не можете использовать командную строку. вы можете вызвать команду seed из вашего кода. проверьте это thread.

+0

Я не могу использовать artisan на лету, потому что он находится на другом сервере, и там пользователи не получили разрешения. Мне нужно клонировать db на лету без comand-команд – user3921996

+0

@ user3921996, тогда я предполагаю, что импортирование файла дампа sql будет вашим вариантом. –

+0

@ user3921996 вы можете вызвать семя ремесленника из кода 'Artisan :: call ('db: seed');' –

Смежные вопросы