Forum: Ruby on Rails Generate a migration from an existing MySQL Database (like Symfony)

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
E9200d9a4d66b0000c844ac6d5524cca?d=identicon&s=25 RaSca (Guest)
on 2007-12-12 16:30
(Received via mailing list)
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,

--
RaSca
rascasoft@tiscali.it
642586dc22f75193f059bc39c43d624e?d=identicon&s=25 kevin cline (Guest)
on 2007-12-12 18:40
(Received via mailing list)
On Dec 12, 3:22 am, RaSca <rascas...@tiscali.it> wrote:
> 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.

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
E9200d9a4d66b0000c844ac6d5524cca?d=identicon&s=25 RaSca (Guest)
on 2007-12-12 18:43
(Received via mailing list)
On 12 Dic, 17:51, kevin  cline <kevin.cl...@gmail.com> wrote:
> On Dec 12, 3:22 am, RaSca <rascas...@tiscali.it> wrote:
[...]
> This can be done in three simple steps:
[...]

Great!

Thank you so much.

Bye,

--
RaSca
rascasoft@tiscali.it
93d1a9795cb0bf4060b18699f1a05c37?d=identicon&s=25 Joel B. (joel_b)
on 2013-02-07 00:22
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:
> On Dec 12, 3:22 am, RaSca <rascas...@tiscali.it> wrote:
>> 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.
>
> 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 topic is locked and can not be replied to.