I have found something that works. I'll share it here for future reference.
1. To the MetaData I have added all the columns, etc that I needed to
have in my actual DB (but not in my SA-mapping).
2. I used that MetaData structure for the create_all() call. This
takes care of the actual SQL schema creation as CREATE TABLE
statements.
3. I have removed all the columns, etc that I don't want SA to see or
act upon from the MetaData structure.
4. So what the SA mapper actually gets is less than what the RDBM got.
This seems to work.
Thank you anyway.
Op 21/12/2010 16:09, Tim Aerts schreef:
Yes, I do want to exclude it all together. But we are creating the
database from a createall() call. So if leave it out of the SA schema
definition, it will also disappear in the CREATE TABLE statements.
Is there any way, whatsoever, to included them in the SA-generated
CREATE TABLE DDL without having them in the SA-generated INSERTs/UPDATEs?
Op 21/12/2010 15:59, Michael Bayer schreef:
On Dec 21, 2010, at 8:36 AM, tim wrote:
Hi,
I have some meta-data columns in my schema. How can I make sure they
are not part of the SELECT, INSERT and UPDATE statements SQLAlchemy is
doing in the background?
I tried:
Column('lastUpdate', DateTime, DefaultClause('CURRENT_TIMESTAMP'),
nullable=False), # for Nebula's Syncer
along with
mapper(Location, locations, version_id_col=locations.c.STAMP,
exclude_properties=['lastUpdate'], properties = {
'site': relation(Site, backref='locations'),
})
But the lastUpdate column still turns up in the SQL it is executing,
and what's worse, without using it's default value!
Would anyone please help me out?
If the column has an existing server-side default on it, you'd want
to specify server_default=FetchedValue() :
http://www.sqlalchemy.org/docs/core/schema.html#triggered-columns
If you want to "exclude" the column from being used in your
application in any way, simply don't place it in the Table
definition. If you're using reflection, you could use the
"include_columns" list on Table to specify which columns you want.
"exclude_properties" in the ORM prevents those columns from being
mapped, but doesn't prevent the core table level functionality from
dealing with this column so that's why you need to ensure the Table
metadata is correct.
--
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.