Generate a migration from an existing MySQL Database (like Symfony)

Hi everybody, i'm a rails newbie and i'm trying to convert an existing application to rails. What i cannot find is a way to "convert" an existing mysql database into a rails migration script. I don't wanto to rewrite all the migration scripts and i wonder if there's a way to automate this process. For example, in Symfony once you have configured an access to a mysql DB in the config file (config/database.yml) you can launch # symfony propel-build-schema xml to generate an the XML file (config/schema.xml) containing the db structure and after that with # symfony propel-build-model and #symfony propel-generate-crud frontend tablename Tablename you have the complete editable scaffold for the table access configured.

Is there a similar way to do these kind of things in rails ? Or the only way is to write by hand all the migration scripts ?

Thanks,

This can be done in three simple steps:

1. write config/database.yml to reference your database. 2. Run "rake db:schema:dump" to generate db/schema.rb. Here's the documentation:

  $ rake -T db:schema:dump   ...   rake db:schema:dump # Create a db/schema.rb file that can be portably used against any DB supported by AR

3. Convert schema.rb into db/migrate/001_create_database.rb:

class CreateMigration < ActiveRecord::Migration   def self.up     # insert schema.rb here   end

  def self.down     # drop all the tables if you really need     # to support migration back to version 0   end end

[...]

This can be done in three simple steps:

[...]

Great!

Thank you so much.

Bye,

This was a big help. Thanks!

One thing though: I couldn't get the newly created migration file to work initially. I kept getting an error that said "uninitialized constant CreateDatabase." I had to rename the migration class "CreateDataBase".

So the first line of the migration file is now:   class CreateDatabase < ActiveRecord::Migration

Everything looks good now.

Thanks again.

kevin cline wrote in post #600414: