views:

131

answers:

1

Hi,

I'm trying to migrate my app from MySql to Postgresql, using Rails3-pre and the latest DataMapper.

I have several models which are related through many-to-many relationships using :through => Resource, which means that DataMapper creates a join table with foreign keys for both models. I can't auto_migrate! these changes, because I keep getting this:

ERROR:  cannot drop table users because other objects depend on it
DETAIL:  constraint artist_users_owner_fk on table artist_users depends on table users
constraint site_users_owner_fk on table site_users depends on table users
HINT:  Use DROP ... CASCADE to drop the dependent objects too.

I have tried everything I can think of, and thought I had things working when I added :constraint => :skip to the field definition, but I keep getting that error back when I try and run auto_migrate. I thought that :skip meant that it would ignore the dependents, but maybe that only applies for deleting rows and not dropping tables?

I should mention that I can run auto_migrate after i nuke the db once, but after that, errors.

Any suggestions or advice much appreciated.

Edit: Gibheer on datamapper irc suggested using auto_upgrade instead - it doesn't try to recreate the tables.

A: 

I had a similar problem with importing external data and relationships, someone suggested I try DataMapper.finalize.auto_migrate! before starting to insert data. Hope it helps

Tom