Re: rake db:migrate does nothing

Rob Biedenharn
Fri, 06 Jul 2007 21:54:10 -0000

show us a listing of your db/migrate directory.  If you have the same
class defined in more than one migration file (typically matching the
CamelCased part of the filename after then number), then your
migrations go haywire.  One way around this is to use very long,
descriptive names for your migrations.

-Rob

Rob Biedenharn		http://agileconsultingllc.com
Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org

On Jul 6, 2007, at 5:34 PM, Ambrose wrote:
> Anyone else have any suggestions?
>
> Thanks
>
> Ambrose
>
> On Jul 4, 7:31 pm, Ambrose
<ambrose.merr...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:
>> Hi Cory - nope, they are not tables I have already created - they
>> definitely don''t exist before or after the migration :-(
>>
>> I just don''t get it. I''ll use the same code when I
start a new
>> project
>> and it will work for a while.
>>
>> Very frustrating.
>>
>> On Jul 4, 2:15 pm, CPerry
<c...-jEJZ73ctDLTqlBn2x/YWAg@public.gmane.org> wrote:
>>
>>> Be sure that you have not already created these tables before. If
>>> you
>>> have you will need to force the migration to work like so....
>>
>>> create_table :resumes force => true do |t|
>>
>>> This will allow the migration to overwrite the original table,
>>> assuming that you have already previously created it.
>>
>>> --Cory
>>
>>> On Jul 4, 4:09
pm,Ambrose<ambrose.merr...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:
>>
>>>> In the migrate directory I have got to 005. The foirst 3
>>>> moigrations
>>>> worked but migration 004 and 005 did not.
>>
>>>> I just rolled back to version=2 and then ran rake db:migrate
>>>> again and
>>>> it created the table for 003 but once again did not create the
>>>> tables
>>>> for 004 or 005. No errors just did not do anything for 004 and
005.
>>
>>>> Very strange.
>>
>>>> On Jul 4, 1:06 pm, Niels Meersschaert
<nmeersscha...-ee4meeAH724@public.gmane.org>
>>>> wrote:
>>
>>>>> What does the new migration you just created say is the
migration
>>>>> number?
>>>>> How did you create the migration?  The convention is
migrations
>>>>> are
>>>>> named 003NameOfMigraton where 003 refers to the migration
number.
>>
>>>>> Niels
>>
>>>>> Sent from my iPhone
>>
>>>>> On Jul 4, 2007, at 4:00
PM,Ambrose<ambrose.merr...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
>>>>> wrote:
>>
>>>>>> Thanks Niels
>>
>>>>>> I tried creating a new migration but once again it
didn''t fail
>>>>>> but
>>>>>> also did not create the table.
>>
>>>>>> The schema says I am on version 3 though I have tried 2
more
>>>>>> migrations that have not happened. If I roll back now I
will
>>>>>> roll back
>>>>>> to version 2 and lose a table with some test data. No
big deal I
>>>>>> guess.
>>
>>>>>> Is it your expectation that I will then be able to
successfully
>>>>>> perform migrations once again? I''ll try and
see.
>>
>>>>>> Thanks
>>
>>>>>> Ambrose
>>
>>>>>> On Jul 4, 12:53 pm, Niels Meersschaert
<nmeersscha...-ee4meeAH724@public.gmane.org>
>>>>>> wrote:
>>>>>>> You need to either create a new migration or roll
back to the
>>>>>>> migration before the one you are editing. If you
look in your
>>>>>>> db you
>>>>>>> will see a table called schema info. This has a
single row
>>>>>>> with a
>>>>>>> column showing the version of your migration.
>>
>>>>>>> If you are still developing it is fine to edit the
migration,
>>>>>>> bit if
>>>>>>> you are in production the rollback could remove
data so the
>>>>>>> safest
>>>>>>> approach is to generate a new migration.
>>
>>>>>>> Niels
>>
>>>>>>> Sent from my iPhone
>>
>>>>>>> On Jul 4, 2007, at 3:21
>>>>>>>
PM,Ambrose<ambrose.merr...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
>>>>>>> wrote:
>>
>>>>>>>> Very strange.
>>
>>>>>>>> I have created a couple of models, edited the
migration
>>>>>>>> files and
>>>>>>>> run
>>>>>>>> rake db:migrate and voila, the new table is
created.
>>
>>>>>>>> Now I come to create a 3rd model, edit the
migration file:
>>
>>>>>>>> class CreateResumes <
ActiveRecord::Migration
>>>>>>>> def self.up
>>>>>>>>   create_table :resumes do |t|
>>>>>>>>     # t.column :name, :string
>>>>>>>>     t.column :institution, :string
>>>>>>>>     t.column :user_id, :integer
>>
>>>>>>>>   end
>>>>>>>> end
>>
>>>>>>>> def self.down
>>>>>>>>   drop_table :resumes
>>>>>>>> end
>>>>>>>> end
>>
>>>>>>>> and run rake db:migrate and it doesn''t
fail it just does
>>>>>>>> nothing, it
>>>>>>>> creates no new table.
>>
>>>>>>>> C:\work\1hh-b>rake db:migrate -t
>>>>>>>> (in C:/work/1hh-b)
>>>>>>>> ** Invoke db:migrate (first_time)
>>>>>>>> ** Invoke environment (first_time)
>>>>>>>> ** Execute environment
>>>>>>>> ** Execute db:migrate
>>>>>>>> ** Invoke db:schema:dump (first_time)
>>>>>>>> ** Invoke environment
>>>>>>>> ** Execute db:schema:dump
>>
>>>>>>>> C:\work\1hh-b>
>>
>>>>>>>> Other rake commands work fine such as rake
annotate_models.
>>
>>>>>>>> This isn''t the first time this has
happened. It usually happens
>>>>>>>> after
>>>>>>>> I have done a few migrations. Because I am a
noob and building
>>>>>>>> simple
>>>>>>>> test apps I just start a new project, copying
over what I have
>>>>>>>> done to
>>>>>>>> date and rake db:migrate works fine. But it
isn''t a
>>>>>>>> satisfactory
>>>>>>>> solution.
>>
>>>>>>>> Any suggestions would be great.
>>
>>>>>>>> Thanks
>>
>>>>>>>> Ambrose