This post is about rebuilding your database from a schema.yml file in your Symfony project (Symfony version 1.4.8 embedded in the project at /path/to/your/project/lib/vendor/symfony/lib).
If you make a change in your config/doctrine/schema.yml, run these commands from your project’s root directory.
./symfony doctrine:drop-db
./symfony doctrine:build-model
./symfony doctrine:build-sql
./symfony doctrine:create-db
./symfony doctrine:insert-sql
drop-db drops the database.
build-model creates the model from the schema file.
build-sql creates the SQL from the model.
create-db creates the database configured in config/databases.yml with the name of your project.
insert-sql inserts the SQL into the fresh database.
Note: You must drop your database in order to insert the generated SQL. The generated SQL does not include DROP TABLE or CREATE TABLE IF NOT EXISTS.
Note: These steps are for a development environment. If you run these commands you’ll lose all your data. If you have data you need saved. Make sure you run:
./symfony doctrine:data-dump
before dropping your database. This will store your data into a YAML file like data/fixtures/data.yml. After you’ve done the above steps, you can:
./symfony doctrine:data-load
in order to reinsert the data into the database.
5 Responses
Thank you
What about if i have 9 million record in database table ?
so “./symfony doctrine:data-dump” will not help.
What we can do ?
Mohamed,
What happens when you run doctrine:data-dump? Does the terminal freeze up? Do you get any errors? Is the file created, but blank?
If you’re using MySQL, my first way around this would be to do a SQL dump from the database using a tool like phpMyAdmin. If you don’t have phpMyAdmin try this from the command line:
mysqldump -u username -ppassword database_name > dump.sql
Then to reimport your data you can try
mysql -u username -ppassword
mysql> use database_name;
mysql> source dump.sql;
Remember to be careful with this, though. If you’ve made a lot of changes to the structure of your database, inserting values into nonexistent columns may cause some serious issues.
Hi Colin,
thanks for the info. I have noticed that doctrine doesn’t dump all the data of the database correctly. Many indexes are wrong, do you had any experience about it?
thanks,
Michelangelo
hi,
can i create schema.yml file from database sql file in symfony 1.4.20 version.
i have sql file but can not understand yml file, so i want to create schema.yml file from sql.
Thank you.