I am learning symfony and wanted to make a login page. So I followed this tutorial -Symfony 4 login form with security and database users exactly the same.
The issue I am having is the doctrine:generate and doctrine:migrate command.
When I run the command, it does not make the tables. When I check the database with phpmyadmin, all I see is a migration_versions table and no tables for the entities I created.
The doctrine:migrations:generate command will create an empty migration file. You still have to write the sql necessary to create your tables.
The doctrine:migrations:diff command will check the database structure against your model classes and generate the sql for you.
Related
I am new to Laravel and I'm confused if it is possible to create a multiple migration table in Laravel in just one run?
Like:
php artisan make:migration user_acc_tbl --create=user_acc_tbl, user_info_tbl --create=user_info_tbl, skills_tbl --create=skills_tbl
I hope it is possible. So that we can just run the command once from the command terminal to create multiple migration files. It would be really helpful though.
According to the Laravel documentation, it is not possible to make multiple migrations in one command line. You may be able to write a custom artisan console command and do it that way, however I really don't see how it would save that much time.
What you could do is create multiple tables from one migration file. Just use Schema::create and create the proper tables with the necessary columns.
You could also create aliases to help speed up workflow in the terminal.
I have a system made with Laravel. As we know, we can make database migrations in Laravel using php artisan.
So bacially, you create a migration file then edit it for the structure like tables and fields then run the migration command and it will create the database tables for you.
Question, is it possbile to the reverse? I have already an exisiting database with tables in it and already structured. Is there something I can do to to generate all the migration files needed for that without doing it manually for each one?
Yep, have a look at:
https://github.com/Xethron/migrations-generator
This works quite well, used it a few times on projects I've inherited from other developers.
Works with Laravel 5 too.
Here is the legacy documentation explaining what "generate-migrations-db" does:
http://symfony.com/legacy/doc/doctrine/1_2/en/07-Migrations
It says
Generate migration classes from existing database connections
(doctrine-generate-migrations-db, doctrine-gen-migrations-from-db)
Also:
Generating Migrations
Doctrine offers the ability to generate sets of
migration classes for existing databases or existing models as well as
generating blank migration classes for you to fill in with the code to
make your schema changes.
From Database
If you have an existing database you can build a set of migration
classes that will re-create your database by running the following
command.
$ ./symfony doctrine:generate-migrations-db
In other words: it takes the schema from the database and generates a migration that performs that schema creation. No entities, no classes, no mappings are used in this process. It just takes a DB and builds a migration class.
We do not have generate-migrations-db anymore. Do we have something that performs that task? I couldn't find. If it was replaced by some other command, please let me know. If it was just removed, please let know.
I'm not aware of a command in Doctrine or the Migrations Bundle that creates migration files for an existing database.
So here's how I did it instead:
Install DoctrineMigrationsBundle
Create a new blank database
Update your config or parameters to point to this blank database rather than to your "real" one
Run php app/console doctrine:migrations:diff. This will create a migrations file that creates your database tables etc from scratch
Change back your config/parameters
Hope this is helpful.
Take a look at the DoctrineMigrationsBundle, which can generate migration classes with sql statements for migration.
I've created a new database with the SQL CREATE DATABASE command to host my application tables. I would now generate the database from my Symony 2.1 project using Doctrine. I already have the correct mapping YML-PHP entities but when I try to use the command
php app/vendors doctrine:schema:create
it fails on a query that I run inside my application. What I don't understand is why it seems that it's trying to boot my bundle and so obviously it fails because the queries that I execute don't find the tables. How can I generate the new database?
Base table or view not found: 1146 Table 'mydatabase.mytable_menu' doesn't exist
That command only creates the database for you. You will need to run this command to generate the actual database tables for your entities.
php app/console doctrine:schema:update --force
Question about migrations, announced at one of the latest releases(1.1.6, am I right?)
So, i have a site working with yii 1.1.5 and i want use migrations now, cause site progressing every day. What is the best way to describe first migration, which include all my current database schema?
when you say describe first migration do you mean the class and file name?
yiic migrate create init_db_schema
EDIT
In which case I don't believe the migration tool can reverse engineer an existing db and create the migration for you. So, you'll probably have to manually do it. You could use PHPMyAdmin, MySQL Browser/Workbench to generate the CREATE commands for you and inside your migration script, create the command e.g.
$cmd = $this->getDbConnection()->createCommand($sql);
$cmd->execute();