summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/schema.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-06-30 00:20:26 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-06-30 00:20:26 +0000
commitabd257eb8c9f77adb9624742cdba68dcd2250115 (patch)
tree82e13ff608acf2a0f8a30172f8f4c8ecc2e60f78 /lib/sqlalchemy/schema.py
parent3f3d84e754a4485caadd2cd520e372172a951565 (diff)
downloadsqlalchemy-abd257eb8c9f77adb9624742cdba68dcd2250115.tar.gz
- MetaData and all SchemaItems are safe to use with pickle. slow
table reflections can be dumped into a pickled file to be reused later. Just reconnect the engine to the metadata after unpickling. [ticket:619]
Diffstat (limited to 'lib/sqlalchemy/schema.py')
-rw-r--r--lib/sqlalchemy/schema.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py
index a27adf06e..5d3ca694b 100644
--- a/lib/sqlalchemy/schema.py
+++ b/lib/sqlalchemy/schema.py
@@ -1094,6 +1094,15 @@ class MetaData(SchemaItem):
if engine or url:
self.connect(engine or url, **kwargs)
+ def __getstate__(self):
+ return {'tables':self.tables, 'name':self.name, 'casesensitive':self._case_sensitive_setting}
+
+ def __setstate__(self, state):
+ self.tables = state['tables']
+ self.name = state['name']
+ self._case_sensitive_setting = state['casesensitive']
+ self._engine = None
+
def is_bound(self):
"""return True if this MetaData is bound to an Engine."""
return self._engine is not None