Some additional information - a GUI tool for inspecting sqlite databases tells me that the following is the CREATE syntax for such a table as I mention above:
CREATE TABLE "invTypes" ( > "typeID" integer NOT NULL, > "groupID" integer DEFAULT NULL, > "typeName" varchar(200) DEFAULT NULL, > "description" varchar(6000) DEFAULT NULL, > "mass" double DEFAULT NULL, > "volume" double DEFAULT NULL, > "capacity" double DEFAULT NULL, > "portionSize" integer DEFAULT NULL, > "raceID" integer DEFAULT NULL, > "basePrice" decimal(19,4) DEFAULT NULL, > "published" integer DEFAULT NULL, > "marketGroupID" integer DEFAULT NULL, > "chanceOfDuplicating" double DEFAULT NULL, > PRIMARY KEY ("typeID") > ) > I should stress that I don't know how the interface got this information other than that it opened the database file. On Tuesday, January 28, 2014 6:36:26 PM UTC-8, Erich Blume wrote: > > I am somewhat new to SQLAlchemy, but as far as I can tell there is no > existing facility in the SA SQLite dialect > (sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite) to resolve > SQLite's data type affinities, as shown in section 2.2 of the SQLite data > type docs: http://www.sqlite.org/datatype3.html - and this omission is > causing reflection to fail for me on a specific sqlite database file. > > Here is an example session (apologies if this is poorly formatted, I'm not > used to using the google groups UI for technical discussion): > > >>> import sqlalchemy as sa >> >>> eng = sa.create_engine('sqlite:////tmp/eve-asset-db.sqlite') >> >>> meta = sa.MetaData() >> >>> meta.reflect(bind=eng) >> [OMITTED]/python3.3/site-packages/sqlalchemy/dialects/sqlite/base.py:808: >> SAWarning: Did not recognize type 'DOUBLE' of column 'sizeFactor' >> default, primary_key)) >> > ... (Many additional similar warnings suppressed) > > By inspecting base.py I see that indeed only the core types are supported, > and 'Affinity Types' like "DOUBLE" and "LONGTEXT" will cause this error. > One question I have that I can't find an answer to is why does this SQLite > database have a column marked as a DOUBLE? Shouldn't it have been converted > to a REAL when it was created? I'm not familiar enough with SQLite to know > the answer to that question. > > Regardless of the answer to that question though, it seems reasonable to > me that the reflection should succeed and automatically convert the columns > to REAL/TEXT/etc. > > Here is a link to a third-party website which has created the sqlite > database I am trying to reflect. Please note that the remote source updates > this file every few months and so viewers from the future might not get the > same behavior: https://www.fuzzwork.co.uk/dump/sqlite-latest.sqlite.bz2[341MB > uncompressed] > > Here are my environment details: > > Python 3.3 > SQLAlchemy 0.9.1 > > I don't know what version of SQLite was used to create the database. If > there's a way to find out, let me know and I will update. > > Thanks! > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/groups/opt_out.