aishee / sqlalchemy-migrate

Automatically exported from code.google.com/p/sqlalchemy-migrate
MIT License
0 stars 0 forks source link

Incorrect identifier casing/quoting on Oracle #85

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Create a database on Oracle with default cased identifiers. Say, "create
table documents;"
2. Create a script to add a column to the table. Use sqlalchemy default
casing (all lower case, see
http://www.sqlalchemy.org/docs/reference/dialects/oracle.html#identifier-casing
for detail). The script might look like the one attached.
3. Run the script on the unmigrated database.

What is the expected output? What do you see instead?
It should run, as sqlalchemy handles the Oracle default UPPERCASE of
identifiers. Normal sqlalchemy operations do work. However, trying to run
this script reports the error:
    sqlalchemy.exc.DatabaseError: (DatabaseError) ORA-00942: table or view
does not exist
     '\nALTER TABLE "documents" ADD category VARCHAR(256)' {}

Something has quoted the name "documents", thus indicating to oracle that
this table name is lower-case and not the default upper case. In other
words, it appears as if sqlalchemy-migrate is not following the same
convention for quoting identifiers as sqlalchemy.

What version of the product are you using? On what operating system?
Windows 7 Pro 32-bit, Python 2.6.4, Sqlalchemy 0.5.6, sqlalchemy-migrate
0.5.4, cxOracle

Original issue reported on code.google.com by jaraco%jaraco.com@gtempaccount.com on 28 Mar 2010 at 12:14

Attachments: