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
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
#symfony propel-generate-crud frontend tablename Tablename
you have the complete editable scaffold for the table access

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 ?


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

  $ 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

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


This can be done in three simple steps:



Thank you so much.


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

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: