Yes, I'll try Plan A first(do the INSERT FROM first) But mainly out of academic curiosity, if I were to start with a blank slate as you say, I'd still need to import the existing data that is currently in the non-inheritance table schema? So I guess I would just drop the database, upgrade to head. At this point I have the latest inheritance-based schema but no data. Say I dumped the db to a file before I dropped it, does alembic have facilities to take a dumped db and insert it into a new/slightly different schema?
On Wednesday, June 7, 2017 at 7:12:27 PM UTC-4, mike bayer wrote: > > > > On 06/07/2017 07:01 PM, Michael wrote: > > Thanks for the insight Mike. I guess the best way to go about that would > > be to just call the raw insert sql statemen in the migration? like in > > > https://stackoverflow.com/questions/23206562/sqlalchemy-executing-raw-sql-with-parameter-bindings/23206636#23206636 > > > i'd start with that just to make sure it gets it working. From there, > we do support insert().from_select(select()) if you have the inclination > to build a Core SQL statement out of it but if you are only targeting > Postgresql it's not critical. > > > http://docs.sqlalchemy.org/en/latest/core/dml.html?highlight=insert%20from_select#sqlalchemy.sql.expression.Insert.from_select > > > > Since this app is not in production yet, would it be easier to make the > > current schema the initial schema and just insert the data that is in > > the MediaChapter table into the new schema just once? I guess could use > > bulk_insert() to do that? > > if the data is not there yet, sure it's easier to start with a blank > slate if that's what you mean.... > > > > > On Wednesday, June 7, 2017 at 6:14:39 PM UTC-4, mike bayer wrote: > > > > > > > > On 06/07/2017 04:44 PM, Michael wrote: > > > Hi all, I have a class called MediaChapter(Base), which I've > > refactored > > > into MediaBase(Base) and MediaChapter(MediaBase) When I run the > > > migration, I see: > > > > > > | > > > psycopg2.IntegrityError:insert orupdate on table > > "mediachapter"violates > > > foreign key constraint "fk_mediachapter_id_mediabase" > > > DETAIL:Key(id)=(570)isnotpresent intable "mediabase". > > > > > > here's the real error with the SQL: > > > > sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) insert or > > update on table "mediachapter" violates foreign key constraint > > "fk_mediachapter_id_mediabase" > > DETAIL: Key (id)=(570) is not present in table "mediabase". > > [SQL: 'ALTER TABLE mediachapter ADD CONSTRAINT > > fk_mediachapter_id_mediabase FOREIGN KEY(id) REFERENCES mediabase > > (id)'] > > > > the error means that your "mediachapter" table contains an id, > "570", > > which is not present in the "mediabase" table. > > > > it looks like you are starting with a populated "mediachapter" table > > then adding a new table "mediabase". Before you create the > constraint, > > you need to run an INSERT on "mediabase" that selects from > > "mediachapter", like: > > > > INSERT INTO mediabase (id, col1, col2, ...) SELECT id, col1, col2, > .. > > FROM mediachapter > > > > > > > -- You received this message because you are subscribed to the Google Groups "sqlalchemy-alembic" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy-alembic+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.