I'm currently passing the table the sequence object, when I create the table. I've been building the table with metadata.create_all.
Calling sequnce.create() before creating the table complains of no binding to an engine or a connection. I understand this makes sense as I haven't told the sequence where to connect, but I don't see anything in the docs for connecting the sequence to the engine/connection. Is there a hidden parameter for binding? Or if I include this sequence in in the table, should that sequence be associated with the metadata object I use to make the table? sequence = Sequence('id_seq', start=siteIndex, increment=len(sites)) #sequence.create() table = Table('acounts', self.metadata, Column(....)) self.metadata.create_all() On Fri, Feb 4, 2011 at 1:46 PM, Michael Bayer <mike...@zzzcomputing.com> wrote: > The sequence has to be created (meaning, the appropriate DDL statements must > be executed) on the target platform with those options, or the appropriate > ALTER statements emitted to ALTER the sequence's settings. > > So when those flags are applied to sqlalchemy.Sequence(), its assumed that > you're using table.create(), metadata.create_all(), or sequence.create() to > issue the CREATE SEQUENCE call. The INCREMENT BY and START WITH clauses > should be emitted as of the 0.6 series of SQLAlchemy. > > > > On Feb 4, 2011, at 2:10 PM, Josh Stratton wrote: > >> I'm connecting to an Oracle database for my work and we do replication >> by periodically joining tables across sites instead of a single server >> just in case a link in between goes down. One issue with this though >> is I need to generate unique keys for a single table so if the >> connection does go down, insertions to both tables won't cause a >> conflict when it's time to merge. >> >> Because the ids aren't important to me during insertion, I just use a >> Sequence object (since Oracle doesn't support autoincrementing). This >> has worked fine, but I'm now trying how to combine this with the >> unique keys across the two sites. I noticed the Sequence class has a >> start and increment tag, which I thought would work perfectly by >> interleaving the keys per site. >> >> For example... >> >> if site1: >> init = 0 >> else: >> init = 1 >> >> sequence = Sequence('id_seq',start=init,increment=2) >> >> I don't see any actual documentation for what start and increment do >> (http://www.sqlalchemy.org/docs/core/schema.html#sqlalchemy.schema.Sequence), >> so I'm just assuming they function as I'd expect, where start is the >> first id to try and increment is the space between the possible id's, >> so site 1's ids will always be % 2 == 0, while site 2's would be % 2 >> == 1. >> >> This doesn't seem to be what I'm getting however. In a few test cases >> on one site, the first id starts at 10,283 and the next one generated >> is 10,284. In this case it's starting at a crazy high value other >> than 0 and it doesn't seem to be incrementing at all. Am I using >> these flags incorrectly? Is this a bug in sqlalchemy? Deprecated >> flags? Or is this whole idea garbage and I should use a guid? >> >> Thanks. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sqlalchemy" group. >> To post to this group, send email to sqlalchemy@googlegroups.com. >> To unsubscribe from this group, send email to >> sqlalchemy+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/sqlalchemy?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To post to this group, send email to sqlalchemy@googlegroups.com. > To unsubscribe from this group, send email to > sqlalchemy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/sqlalchemy?hl=en. > > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.