From abd257eb8c9f77adb9624742cdba68dcd2250115 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sat, 30 Jun 2007 00:20:26 +0000 Subject: - 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] --- lib/sqlalchemy/schema.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'lib/sqlalchemy/schema.py') 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 -- cgit v1.2.1