I want to create models of these tables from schema.rb without
entering the fields names in the command line. Is this possible?
I want to create controllers and views also with respect to it,
possible??
db:migrate will destroying my well defined database table structure.
IS there any way to keep the schema.rb without overwriting it?
Please let me know the answers asap
With that many tables probably the quickest way (if you cannot find it
already done by someone else) will be to write a script in whatever
language you are most comfortable, to create a set of commands like
rails generate scafffold
This will generate everything, including migrations so you can start
with an empty database and run the migrations.
If you do this make sure to publish it so that others will not have to
repeat your work.
How can I get the table and field list?. From schema.rb?
db:migrate will destroying my well defined database table structure.
IS there any way to keep the schema.rb without overwriting it?
Yep, that is it. This is what “rails generate model user first:name
last:name” would generate no matter how many fields you add to the
underlying database table.
Oops. Typed to hastily that should have read “rails generate model user
first_name:string last_name:string”.
I have experience with symfony frame work thats why asking the
question here.Excuse me if I am wrong
This reply is for your future reference, and are merely suggestions…
I have created a schema.rb file with definitions of 50 files and
schema:load did creation of the tables.
It is typical for Rails developers to generate database tables as a
series of migrations where tables are added throughout the development
cycle of a project. The framework is designed this way because most
Rails developers use Behavior/Test Driven Development (BDD/TDD)
techniques.
Now
I want to create models of these tables from schema.rb without
entering the fields names in the command line. Is this possible?
Say you have a “users” table in your database… Following is what the
associated model file would look like:
class User < ActiveRecord::Base
end
Yep, that is it. This is what “rails generate model user first:name
last:name” would generate no matter how many fields you add to the
underlying database table.
Should be pretty easy for you to write a Ruby script that would generate
your 50 model files.
I want to create controllers and views also with respect to it,
possible??
That could be tricky since that’s what “rails generate scaffold…” was
designed to do. If you want to stray from the well defined path the
framework creators provided for you, and blaze your own trail, then
you’ve got a lot more work ahead of you than typical Rails developers
who follow the path.
db:migrate will destroying my well defined database table structure.
IS there any way to keep the schema.rb without overwriting it?
Yes. That’s correct. Hence the warning in
6.1 What are Schema Files for?
Migrations, mighty as they may be, are not the authoritative source for
your database schema. That role falls to either db/schema.rb or an SQL
file which Active Record generates by examining the database. They are
not designed to be edited, they just represent the current state of the
database.
How can I get the table and field list?. From schema.rb?
db:migrate will destroying my well defined database table structure.
IS there any way to keep the schema.rb without overwriting it?
rails g scaffold --help
shows:
ActiveRecord options:
[–migration] # Indicates when to generate migration
# Default: true
rails g
is a shorthand way of saying
rails generate
Note how much easier it is to understand my post when I reply inline
after your question. In order to understand your question I first had
to scroll down to the bottom to find out what " Whats the use of ‘g’
here?" was referring to.