Re: rake db:migrate does nothing

Ambrose
Sat, 07 Jul 2007 00:40:47 -0000

Yep - all the class names you wrote are as they appear in the
migration file.

All the classes match the file name and are unique.

The current version in schema.rb:

ActiveRecord::Schema.define(:version => 3) do

As I say, if I now create a new project (which I am actually going to
do as I am stuffed otherwise) then all the migrations will work. It
just seems that after a while it stops applying them for no apparent
reason in an existing project.

Crazy stuff. And very frustrating.

Thanks for your input Rob.



On Jul 6, 3:31 pm, Rob Biedenharn
<R...-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org>
wrote:
> On Jul 6, 2007, at 6:07 PM,Ambrosewrote:> Hi Rob
>
> > Thanks for the reply. Here is my migrate directory listing:
>
> > 001_add_sessions.rb
>
> class AddSessions (right?)
>
> > 002_create_admins.rb
> class CreateAdmins
> > 003_create_users.rb
> class CreateUsers
> > 004_create_resumes.rb
> class CreateResumes
> > 005_create_cvs.rb
> class CreateCvs
>
> > It didn''t apply migration 004 so I tried another migration
005 and
> > that didn''t apply wither. I rolled back to 002 and then
migrated again
> > and it redid 003 but once again did not apply 004 or 005.
>
> from script/console, what does this say:
> puts ActiveRecord::Migrator.current_version
>
> I''m thinking it will say 3
>
> Of course, if any of the classes don''t match the filename (more
> importantly, if they aren''t unique), you should *make* them unique
> and try again.
>
> -Rob
>
>
>
> > I am pretty sure there is something odd going on as in the past I have
> > created a new rails project and run the same migrations creating the
> > same tables and it works fine.
>
> > Cheers
>
> >Ambrose
>
> > On Jul 6, 2:54 pm, Rob Biedenharn
<R...-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org> wrote:
> >> 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
> >> R...-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org
>
> >> On Jul 6, 2007, at 5:34 PM,Ambrosewrote:
>
> >>> 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