Я обычно работаю с SF2, и с Doctrine, Entities можно генерировать автоматически, и если вы создадите схему в Soft, как MySQL Workbench, вы можете сделать Reverse Engineering.
Я новичок в Laravel, поэтому есть способ сделать эти обе вещи? Я бы использовал Laravel, потому что мне нужно сделать очень маленький проект, но я не хотел писать весь этот код для того, что мы называем «Миграции», кажется, очень скучно нет?
Итак, есть способ генерировать этот материал в laravel? Может быть, я должен использовать Доктрину в Ларавеле для этого?
Если вы хотите сгенерировать файлы миграции из существующей базы данных mysql, вы можете использовать пакет Laravel с именем XCMer / larry-four-generator. Помимо обратной инженерии, он имеет множество других функций.
Larry Four – это пакет Laravel 4, предлагающий расширенную функциональность генерации модели и миграции. Благодаря Ларри вы можете быстро записать схему данных для своей идеи в простой DSL и генерировать миграции и модели из всего лишь одним щелчком мыши. Ларри может также проанализировать существующую схему данных и создать для вас магию.
Попробуйте оригинальную лучшую ветвь мастера
https://github.com/XCMer/larry-four-generator/tree/master
или моей расширенной модели fork, предлагающей дополнительную функциональность
https://github.com/XCMer/larry-four-generator/tree/Gadoma-extendedmodels
Насколько я могу судить, до сих пор нет способа изменить схему на файлы миграции, используя только Laravel. Но вы можете:
1) Экспорт вашей схемы MySQL
mysqldump -u root -p --no-data dbname > schema.sql
2) Создайте миграцию, чтобы использовать вашу схему
php artisan migration:make create_schema
3) Загрузите полную схему
class CreateSchema extends Migration { public function up() { $file = file_get_contents(app_path().'/database/data/full_schema.sql', true); DB::unprepared($file); } public function down() { } }
4) После этого, если вам нужно внести какие-либо изменения в вашу схему, просто создайте новые миграции и внесите изменения.
Не проверен, но должен работать.
Я создал пару классов, которые могут реконструировать существующую базу данных MySQL: https://stackoverflow.com/a/29584887/3432720