Author: phd
Date: 2005-10-31 16:01:38 +0000 (Mon, 31 Oct 2005)
New Revision: 1175
Modified:
home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py
home/phd/SQLObject/paramstyles/sqlobject/firebird/firebirdconnection.py
home/phd/SQLObject/paramstyles/sqlobject/manager/command.py
Log:
Merged patches from the revisions 1171:1174 from the trunk
Modified: home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py 2005-10-28 16:29:54 UTC (rev 1174)
+++ home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py 2005-10-31 16:01:38 UTC (rev 1175)
@@ -547,11 +547,29 @@
if constraint]
return refConstraintDefs
+ def createSQL(self, soClass):
+ tableCreateSQLs = getattr(soClass.sqlmeta, 'createSQL', None)
+ if tableCreateSQLs:
+ assert isinstance(tableCreateSQLs,(str,list,dict,tuple)), (
+ '%s.sqlmeta.createSQL must be a str, list, dict or tuple.' %
+ (soClass.__name__))
+ if isinstance(tableCreateSQLs, dict):
+ tableCreateSQLs = tableCreateSQLs.get(soClass._connection.dbName, [])
+ if isinstance(tableCreateSQLs, str):
+ tableCreateSQLs = [tableCreateSQLs]
+ if isinstance(tableCreateSQLs, tuple):
+ tableCreateSQLs = list(tableCreateSQLs)
+ assert isinstance(tableCreateSQLs,list), (
+ 'Unable to create a list from %s.sqlmeta.createSQL' %
+ (soClass.__name__))
+ return tableCreateSQLs or []
+
def createTableSQL(self, soClass):
constraints = self.createReferenceConstraints(soClass)
+ extraSQL = self.createSQL(soClass)
createSql = ('CREATE TABLE %s (\n%s\n)' %
(soClass.sqlmeta.table, self.createColumns(soClass)))
- return createSql, constraints
+ return createSql, constraints + extraSQL
def createColumns(self, soClass):
columnDefs = [self.createIDColumn(soClass)] \
Modified: home/phd/SQLObject/paramstyles/sqlobject/firebird/firebirdconnection.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/firebird/firebirdconnection.py 2005-10-28 16:29:54 UTC (rev 1174)
+++ home/phd/SQLObject/paramstyles/sqlobject/firebird/firebirdconnection.py 2005-10-31 16:01:38 UTC (rev 1175)
@@ -1,7 +1,8 @@
+import re
+import os
from sqlobject.dbconnection import DBAPI
+from sqlobject import col
kinterbasdb = None
-import re
-import os
class FirebirdConnection(DBAPI):
Modified: home/phd/SQLObject/paramstyles/sqlobject/manager/command.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/manager/command.py 2005-10-28 16:29:54 UTC (rev 1174)
+++ home/phd/SQLObject/paramstyles/sqlobject/manager/command.py 2005-10-31 16:01:38 UTC (rev 1175)
@@ -188,7 +188,7 @@
# This abstract base class
return
register(cls)
-
+
def __init__(self, invoked_as, command_name, args, runner):
self.invoked_as = invoked_as
self.command_name = command_name
@@ -394,7 +394,7 @@
continue
classes = self.classes_from_module(module)
all.extend(classes)
-
+
os.path.walk(package_dir, find_classes_in_file, None)
return all
@@ -419,7 +419,7 @@
dir = conf['history_dir']
dir = dir.replace('$base', dist.location)
self.options.output_dir = dir
-
+
def config_from_egg(self, egg_spec, warn_no_sqlobject=True):
import pkg_resources
pkg_resources.require(egg_spec)
@@ -515,8 +515,8 @@
for constraint in constraints:
if constraint:
print constraint.strip() + ';\n'
-
+
class CommandList(Command):
name = 'list'
@@ -577,7 +577,6 @@
tableConstraints = soClass.createTable()
if tableConstraints:
constraints[soClass._connection].append(tableConstraints)
-
else:
print 'Cancelled'
else:
@@ -593,8 +592,8 @@
if v >= 1:
print '%i tables created (%i already exist)' % (
created, existing)
-
+
class CommandDrop(Command):
name = 'drop'
@@ -795,7 +794,7 @@
'database is currently at. Use the upgrade command to '
'sync databases with code.'
% SQLObjectVersionTable.sqlmeta.table)
-
+
parser = standard_parser()
parser.add_option('--output-dir',
help="Base directory for recorded definitions",
@@ -838,7 +837,7 @@
if self.options.force_db_version:
self.command_force_db_version()
return
-
+
v = self.options.verbose
sim = self.options.simulate
classes = self.classes()
@@ -981,7 +980,7 @@
def strip_comments(self, sql):
lines = [l for l in sql.splitlines()
if not l.strip().startswith('--')]
- return '\n'.join(lines)
+ return '\n'.join(lines)
def base_dir(self):
base = self.options.output_dir
@@ -996,7 +995,7 @@
def find_output_dir(self):
today = time.strftime('%Y-%m-%d', time.localtime())
if self.options.version_name:
- dir = os.path.join(self.base_dir(), today + '-' +
+ dir = os.path.join(self.base_dir(), today + '-' +
self.options.version_name)
if os.path.exists(dir):
print ("Error, directory already exists: %s"
@@ -1012,7 +1011,7 @@
extra = 'a'
else:
extra = chr(ord(extra)+1)
-
+
def find_last_version(self):
names = []
for fn in os.listdir(self.base_dir()):
@@ -1105,8 +1104,8 @@
raise
self.update_db(next_version, conn)
print 'Done.'
-
+
def current_version(self):
conn = self.connection()
if not conn.tableExists(SQLObjectVersionTable.sqlmeta.table):
@@ -1166,8 +1165,8 @@
print 'No upgraders found in %s' % current_dir
return None, None
upgraders.sort()
- return upgraders[-1]
-
+ return upgraders[-1]
+
def update_sys_path(paths, verbose):
if isinstance(paths, (str, unicode)):
paths = [paths]
|