I'm generating migrations between different yaml schema files: i.e. running:
symfony doctrine:generate-migrations-diff
And the resulting migration file has a whole slew of changeColumn calls that weren't added in the last schema file change.
For example, if you run generate-migrations-diff without changing your schema file whatsoever, you should get an empty up() function. However, the function that results for me has a changeColumn call for virtually every table in my database.
Am i doing something wrong or is this a bug?
The generate-migrations-diff doesn't diff two different yaml files. It actually compares your models and your yaml file and then generates a migration based on the differences. If you start from a db that is in sync with your yaml and classes, your workflow to make schema changes should be:
- Change yaml file
- generate-migrations-diff to diff your current (changed) yaml with your (unchanged) models. This will generate a migrations file in your doctrine/migrations directory (or whatever migrations_path is set to in your doctrine config).
- migrate to run the migration created in step 2 and modify your database
- generate-models-yaml to generate new classes based on your yaml file. These go where you've specified your generated models go (models_path in your doctrine config).
- generate-sql to generate a SQL file. This will go where your doctrine sql_path config is set to.