diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-06-30 00:20:26 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-06-30 00:20:26 +0000 |
commit | abd257eb8c9f77adb9624742cdba68dcd2250115 (patch) | |
tree | 82e13ff608acf2a0f8a30172f8f4c8ecc2e60f78 /lib/sqlalchemy/schema.py | |
parent | 3f3d84e754a4485caadd2cd520e372172a951565 (diff) | |
download | sqlalchemy-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.py | 9 |
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 |