we dont have a "schema" attribute on Sequence right now.  we have  
only limited testing support for issuing CREATE statements in an  
alternate schema, and those are all against Postgres (since i only  
have oracle XE here...).  adding "schema" to Sequence is ticket #584  
and we also need to do ticket #726 to fully support alternate-schema  
sequences.

for now id say have your CREATE SEQUENCE as a literal DDL statement  
(i.e. use text("CREATE SEQUENCE...."))


On Aug 14, 2007, at 2:57 PM, Pavel Skvazh wrote:

>
> I'm trying to make sequences in the Oracle database.
> Here's my model
> def init():
>       #conf = paste.deploy.CONFIG
>       #uri = conf['sqlalchemy.dburi']
>       if 'login' in session:
>               uri=1
>       else:
>               conf = paste.deploy.CONFIG
>               uri = conf['sqlalchemy.dburi']  /// Admin rights here
>       engine = create_engine(uri, convert_unicode=True)
> #     meta.bind = engine
>       engine.echo = True
>       meta.connect(engine)
>
> application_sequence = Sequence('Application_id_seq', optional=True)
> application_table = Table ( 'Application', meta,
>       Column('ID_Application',          Integer, application_sequence,
> primary_key=True),
>       Column('ID_Seller',               Integer, nullable=False),
>       Column('ID_Lot',                  Integer, nullable=False),
>       Column('ID_Sell',                 Integer, nullable=False),
>       Column('Text_Application',        String(2048)),
>       Column('Date_Start_Application',  DateTime,
> default=func.current_timestamp()),
>       Column('ID_Status',               Integer),
>       Column('Date_Change_Application', DateTime),
>       Column('Date_Finish_Application', DateTime),
>       ForeignKeyConstraint(['ID_Sell', 'ID_Lot'], ['data.Lot.ID_Sell',
> 'data.Lot.ID_Lot'], ondelete="CASCADE"),
>       schema='data'
> )
>
> Websetup is done like this
>
> def setup_config(command, filename, section, vars):
>       conf = paste.deploy.appconfig('config:' + filename)
>       conf.update(dict(app_conf=conf.local_conf,
> global_conf=conf.global_conf))
>       paste.deploy.CONFIG.push_process_config(conf)
>
>       uri = conf['sqlalchemy.dburi_data'] // Here i log in as the Data
> scheme
>       engine = create_engine(uri)
>       print "Connecting to database %s ..." % uri
>       model.meta.connect(engine)
>
> #   Add some basic values into the table.....
> //////
>
> Everything works fine during websetup. It adds the values in the
> table, since i assume it can see the Sequence.
>
> But during the work with the model, since it logs in as different
> Schema, it cann't see the Sequence.
>
> After that i changed it to
> application_doc_sequence = Sequence('data.APPLICATION_DOC_ID_SEQ',
> optional=True)
> the model can see it just well, works great. But when it comed to
> websetup it fails.
>
> After clearing the database by hand, i decided to take a look at how
> websetup will handle it from the blank database.
>
> Now it works, but when it comes to websetup it gives me this:
> name is already used by an existing object
>
> As it turns out it creates a sequence named
> 'data.APPLICATION_DOC_ID_SEQ', which is not exactly right i guess.
> My assumption would be that they treat this string differently. Model
> can see the schema to look for, but websetup takes literally as a
> string but on the other hand refuses to delete it during drop_all.
>
> Probably that's a well known issue and it's fixed in 0.4 or maybe it's
> me (which is in fact far more likely since i'm new to alchemy).
> Anyway, i'd be delighted if you guys will point it out to me.
>
>
> >


--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to