summaryrefslogtreecommitdiff
path: root/migrate/changeset/databases/sqlite.py
diff options
context:
space:
mode:
authorjan.dittberner <unknown>2009-01-25 12:52:33 +0000
committerjan.dittberner <unknown>2009-01-25 12:52:33 +0000
commiteb00570991a2b39b005749f7f7c67643bdcaba59 (patch)
treef0b4a4af0dfbc85cf14c23d00e95b24b1a26d2f7 /migrate/changeset/databases/sqlite.py
parent728b677e56a8b51c5bda6c127be9837db2c11160 (diff)
downloadsqlalchemy-migrate-eb00570991a2b39b005749f7f7c67643bdcaba59.tar.gz
make migrate.changeset.databases PEP-8 clean and add it to the API docs
Diffstat (limited to 'migrate/changeset/databases/sqlite.py')
-rw-r--r--migrate/changeset/databases/sqlite.py42
1 files changed, 30 insertions, 12 deletions
diff --git a/migrate/changeset/databases/sqlite.py b/migrate/changeset/databases/sqlite.py
index 0f560c1..caeb1b5 100644
--- a/migrate/changeset/databases/sqlite.py
+++ b/migrate/changeset/databases/sqlite.py
@@ -1,11 +1,18 @@
-from migrate.changeset import ansisql,constraint,exceptions
+"""
+ `SQLite`_ database specific implementations of changeset classes.
+
+ .. _`SQLite`: http://www.sqlite.org/
+"""
+from migrate.changeset import ansisql, constraint, exceptions
from sqlalchemy.databases import sqlite as sa_base
from sqlalchemy import Table, MetaData
#import sqlalchemy as sa
SQLiteSchemaGenerator = sa_base.SQLiteSchemaGenerator
+
class SQLiteHelper(object):
+
def visit_column(self, param):
try:
table = self._to_table(param.table)
@@ -24,50 +31,61 @@ class SQLiteHelper(object):
self.append('DROP TABLE migration_tmp')
self.execute()
-class SQLiteColumnGenerator(SQLiteSchemaGenerator,ansisql.ANSIColumnGenerator):
+
+class SQLiteColumnGenerator(SQLiteSchemaGenerator,
+ ansisql.ANSIColumnGenerator):
pass
+
class SQLiteColumnDropper(SQLiteHelper, ansisql.ANSIColumnDropper):
- def _modify_table(self,table, column):
+
+ def _modify_table(self, table, column):
del table.columns[column.name]
- columns = ','.join([c.name for c in table.columns])
- return 'INSERT INTO %(table_name)s SELECT ' + columns + ' from migration_tmp'
+ return 'INSERT INTO %(table_name)s SELECT %s from migration_tmp' % \
+ ','.join([c.name for c in table.columns])
+
class SQLiteSchemaChanger(SQLiteHelper, ansisql.ANSISchemaChanger):
- def _not_supported(self,op):
+
+ def _not_supported(self, op):
raise exceptions.NotSupportedError("SQLite does not support "
"%s; see http://www.sqlite.org/lang_altertable.html"%op)
def _modify_table(self, table, delta):
column = table.columns[delta.current_name]
- for k,v in delta.items():
+ for k, v in delta.items():
setattr(column, k, v)
return 'INSERT INTO %(table_name)s SELECT * from migration_tmp'
- def visit_index(self,param):
+ def visit_index(self, param):
self._not_supported('ALTER INDEX')
def _do_quote_column_identifier(self, identifier):
return '"%s"'%identifier
+
class SQLiteConstraintGenerator(ansisql.ANSIConstraintGenerator):
- def visit_migrate_primary_key_constraint(self,constraint):
+
+ def visit_migrate_primary_key_constraint(self, constraint):
tmpl = "CREATE UNIQUE INDEX %s ON %s ( %s )"
cols = ','.join([c.name for c in constraint.columns])
tname = constraint.table.name
name = constraint.name
- msg = tmpl%(name,tname,cols)
+ msg = tmpl % (name, tname, cols)
self.append(msg)
self.execute()
+
class SQLiteConstraintDropper(ansisql.ANSIColumnDropper):
- def visit_migrate_primary_key_constraint(self,constraint):
+
+ def visit_migrate_primary_key_constraint(self, constraint):
tmpl = "DROP INDEX %s "
name = constraint.name
- msg = tmpl%(name)
+ msg = tmpl % (name)
self.append(msg)
self.execute()
+
class SQLiteDialect(ansisql.ANSIDialect):
columngenerator = SQLiteColumnGenerator
columndropper = SQLiteColumnDropper