Migrations

the VERSION value at in rake db:migrate VERSION=[versionNumber] is the
migration number right? for instance lets say I have 3 models
generated in this respective order albums, users, and reviews. If I
do "rake db:migrate VERSION=0", it will delete the data and existence
of all three tables....if I do VERSION=1, it will delete the existance/
data of users and reviews etc etc...

So my problem is I rolled back to VERSION=0, added a column to Review
in the migration file, and migrated again. For some reason rails
didn't acknowledge the change and the table indecies are still the
same.

So my before I rolled back to version 0:

class CreateReviews < ActiveRecord::Migration
  def self.up
    create_table :reviews, :force => true do |t|
      t.text :productReview
      t.string :product
      t.string :productCreator

      t.timestamps
    end

  end

  def self.down
    drop_table :reviews
  end
end

I then put in a coloumn called album_id

class CreateReviews < ActiveRecord::Migration
  def self.up
    create_table :reviews, :force => true do |t|
      t.text :productReview
      t.string :product
      t.string :productCreator
      t.integer :album_id
      t.timestamps
    end

  end

  def self.down
    drop_table :reviews
  end
end

Rand db:migrate and checked my structure in the console and it's still
the previous version without album_id....

Any thoughts?

the VERSION value at in rake db:migrate VERSION=[versionNumber] is the
migration number right? for instance lets say I have 3 models
generated in this respective order albums, users, and reviews. If I
do "rake db:migrate VERSION=0", it will delete the data and existence
of all three tables....if I do VERSION=1, it will delete the existance/
data of users and reviews etc etc...

So my problem is I rolled back to VERSION=0, added a column to Review
in the migration file, and migrated again. For some reason rails
didn't acknowledge the change and the table indecies are still the
same.

So my before I rolled back to version 0:

class CreateReviews < ActiveRecord::Migration
  def self.up
    create_table :reviews, :force => true do |t|
      t.text :productReview
      t.string :product
      t.string :productCreator

      t.timestamps
    end

  end

  def self.down
    drop_table :reviews
  end
end

I then put in a coloumn called album_id

class CreateReviews < ActiveRecord::Migration
  def self.up
    create_table :reviews, :force => true do |t|
      t.text :productReview
      t.string :product
      t.string :productCreator
      t.integer :album_id
      t.timestamps
    end

  end

  def self.down
    drop_table :reviews
  end
end

Rand db:migrate and checked my structure in the console and it's still
the previous version without album_id....

Any thoughts?

Craig,

Yeah that sounds more feasible rather than migrating down…I can definitely confirm VERSION=0 will drop the table though because when try to load the structure in the console it throws me an error.

What would be the syntax to just add a change(thus adding a new migration then)

I want to add t.intger :album_id. I’m assuming it’s a command at the command line that will product and 004 migration file?

Jon

I’m sorry, it doesn’t throw me an error, it says Review(Table doesn’t exist)

Craig,

Yeah that sounds more feasible rather than migrating down...I can
definitely confirm VERSION=0 will drop the table though because when
try to load the structure in the console it throws me an error.

What would be the syntax to just add a change(thus adding a new
migration then)

I want to add t.intger :album_id. I'm assuming it's a command at the
command line that will product and 004 migration file?

ok thanks, but how do you actually generate that particular migrations file from the command line?, ie it would be 004_something

ok thanks, but how do you actually generate that particular migrations
file from the command line?, ie it would be 004_something

thanks craig,

I was able to generate the file w/the command and I added the “add_column” code. When I do my migrate I can see rail iteratively compiling the files and I see the

4 add_column(:reviews, :album_id, :integer)

->.2970s
4 AddAlbumIdToReviews: migrated (0.3120s)

which means that’s it’s been migrated. But when i look at my Review structure in the console window the it still doesn’t show up…any more thoughts?

thanks craig,

I was able to generate the file w/the command and I added the "add_column"
code. When I do my migrate I can see rail iteratively compiling the files
and I see the

4 add_column(:reviews, :album_id, :integer)
->.2970s
4 AddAlbumIdToReviews: migrated (0.3120s)

which means that's it's been migrated. But when i look at my Review
structure in the console window the it still doesn't show up...any more
thoughts?

Just curious: how are you viewing the structure via the console? Are
you looking at an already loaded instance via the ruby console, like:

review = Review.find(:first)
review

Or are you viewing it via your db's console?

I’m just loading it like this:

Review
Review(id: integer, productReview:text, product: string, productCreator: string, created_at: datetime, updated_at: datetime)

It’s strange, I added an identical id to another structure called Album, well I added “review_id”, and it worked out fine.

Have you tried restarting the console after you ran the migration?

you know that might be a good idea…

Craig,

It worked. Thank you…please excuse me while I go shoot myself for not trying that already. It’s funny restarting the console has worked in some instances like this before…but I was lazy and did “reload!” instead. Rails is funny…

Thanks again

Jon