I solved the problem dropping the tables as sysdba. :-)

j


jo ha scritto:
> Seems SA checks if table already exist in all_tables system table...
> and creates it only if it doesn't exist.
>
> In my case...
>
> SQL> select table_name from all_tables where 
> table_name='FUNZIONE_CALCOLO', returns:
> TABLE_NAME
> ------------------------------
> FUNZIONE_CALCOLO
>
> SQL> select table_name from all_tables where table_name='TARIFFA';
> no rows selected
>
> instead :
>
> SQL> desc FUNZIONE_CALCOLO
> ERROR:
> ORA-04043: object FUNZIONE_CALCOLO does not exist
>
> SQL> desc TARIFFA
> ERROR:
> ORA-04043: object TARIFFA does not exist
> -------------------------------------------
> probably it is because I droped the table funzione_calcolo.
> Is it regular that FUNZIONE_CALCOLO is in all_tables yet?
>
>
> -----------------
> 2.4.4 (#2, Apr 15 2008, 23:43:20)
> [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)]
>
> select table_name from all_tables where table_name=:name
>
> {'name': 'FUNZIONE_CALCOLO'}
>
> select table_name from all_tables where table_name=:name
>
> {'name': 'TARIFFA'}
>
> CREATE TABLE tariffa (
>         id INTEGER NOT NULL,
>         cod_funzione_calcolo VARCHAR(5) NOT NULL,
>         PRIMARY KEY (id),
>          FOREIGN KEY(cod_funzione_calcolo) REFERENCES funzione_calcolo 
> (codice)
> )
>
>
>
> None
>
> ROLLBACK
> Traceback (most recent call last):
>   File "./start-sicer.py", line 16, in ?
>     from sicer.controllers import Root
>   File "/home/sfera/release/sicer/controllers/__init__.py", line 3, in ?
>     from errorhandling       import ErrorCatcher
>   File "/home/sfera/release/sicer/controllers/errorhandling.py", line 
> 16, in ?
>     from sicer.model import Anagrafica
>   File "/home/sfera/release/sicer/model/__init__.py", line 1, in ?
>     from sql             import *
>   File "/home/sfera/release/sicer/model/sql.py", line 21, in ?
>     database.metadata.create_all(engine)
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/schema.py", line 
> 1239, in create_all
>     bind.create(self, checkfirst=checkfirst, tables=tables)
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", 
> line 699, in create
>     self._run_visitor(self.dialect.schemagenerator, entity, 
> connection=connection, **kwargs)
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", 
> line 729, in _run_visitor
>     element.accept_visitor(visitorcallable(conn, **kwargs))
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/schema.py", line 
> 1266, in accept_visitor
>     visitor.visit_metadata(self)
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/ansisql.py", line 
> 798, in visit_metadata
>     table.accept_visitor(self)
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/sql.py", line 2713, 
> in accept_visitor
>     visitor.visit_table(self)
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/ansisql.py", line 
> 833, in visit_table
>     self.execute()
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", 
> line 1215, in execute
>     return self.connection.execute(self.buffer.getvalue())
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", 
> line 517, in execute
>     return Connection.executors[c](self, object, *multiparams, **params)
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", 
> line 532, in execute_text
>     self._execute_raw(context)
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", 
> line 581, in _execute_raw
>     self._execute(context)
>   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", 
> line 599, in _execute
>     raise exceptions.SQLError(context.statement, context.parameters, e)
> sqlalchemy.exceptions.SQLError: (DatabaseError) ORA-00942: table or view 
> does not exist
>  '\nCREATE TABLE tariffa (\n\tid INTEGER NOT NULL, 
> \n\tcod_funzione_calcolo VARCHAR(5) NOT NULL, \n\tPRIMARY KEY (id), \n\t 
> FOREIGN KEY(cod_funzione_calcolo) REFERENCES funzione_calcolo 
> (codice)\n)\n\n' {}
>
>
> jo ha scritto:
>   
>> hi all,
>>
>> I'm having problems with database.metadata.create_all.
>> The code works perfectly with PostgreSQL but with Oracle it 
>> doesn't...and it exits with the following error:
>>
>> ...
>>     self._execute_raw(context)
>>   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", 
>> line 581, in _execute_raw
>>     self._execute(context)
>>   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", 
>> line 599, in _execute
>>     raise exceptions.SQLError(context.statement, context.parameters, e)
>> sqlalchemy.exceptions.SQLError: (DatabaseError) ORA-00942: table or view 
>> does not exist
>>  '\nCREATE TABLE tariffa (\n\tid INTEGER NOT NULL, 
>> \n\tcod_funzione_calcolo VARCHAR(5) NOT NULL, \n\tPRIMARY KEY (id), \n\t 
>> FOREIGN KEY(cod_funzione_calcolo) REFERENCES funzione_calcolo 
>> (codice)\n)\n\n' {}
>>
>>
>> here the source...
>> -----------------------------------------------------------------------
>> from turbogears                         import database
>> from sqlalchemy                         import *
>> from sqlalchemy.ext.assignmapper        import assign_mapper
>> from sqlalchemy.ext.selectresults       import SelectResultsExt
>> database.bind_meta_data()
>> session = database.session
>> engine  = database.metadata.engine
>> context = database.session.context
>> tbl = {}
>>
>> tbl['funzione_calcolo']=Table('funzione_calcolo',database.metadata,
>>     Column('codice', Unicode(5),nullable=False,primary_key=True),
>>     Column('descrizione', Unicode(200), nullable=False),
>>     )
>> tbl['tariffa']=Table('tariffa',database.metadata,
>>     Column('id', Integer, Sequence('tariffa_seq'), nullable=False, 
>> primary_key=True),
>>     Column('cod_funzione_calcolo', Unicode(5), nullable=False),
>>     
>> ForeignKeyConstraint(['cod_funzione_calcolo'],['funzione_calcolo.codice']),
>>     )
>> database.metadata.create_all(engine)
>> -------------------------------------------------------------------------------
>>
>> what's wrong ?
>>
>> jo
>>
>> ps:
>> I'm using SA 0.3.10
>>
>>
>>     
>
>
> >
>   


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
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