##// END OF EJS Templates
pullrequest: just replace children of other_ref when other_repo changes...
pullrequest: just replace children of other_ref when other_repo changes We were inserting a full select statement as innerHTML of a select and would thus get nested select statements. IE did not render that correctly ... and other browsers did strange things. Instead we now create a in memory DOM object and move the optgroups. After appending children to the selector we have to set selectedIndex on all browsers.

File last commit:

r2000:72c525a7 beta
r3512:ff3f10a6 beta
Show More
mysql.py
65 lines | 2.1 KiB | text/x-python | PythonLexer
added dbmigrate package, added model changes...
r833 """
MySQL database specific implementations of changeset classes.
"""
from sqlalchemy.databases import mysql as sa_base
from sqlalchemy import types as sqltypes
fixed imports on migrate, added getting current version from database
r835 from rhodecode.lib.dbmigrate.migrate import exceptions
added migrations from 1.2.X to 1.3
r2000 from rhodecode.lib.dbmigrate.migrate.changeset import ansisql
added dbmigrate package, added model changes...
r833
added migrations from 1.2.X to 1.3
r2000 MySQLSchemaGenerator = sa_base.MySQLDDLCompiler
added dbmigrate package, added model changes...
r833
class MySQLColumnGenerator(MySQLSchemaGenerator, ansisql.ANSIColumnGenerator):
pass
class MySQLColumnDropper(ansisql.ANSIColumnDropper):
pass
class MySQLSchemaChanger(MySQLSchemaGenerator, ansisql.ANSISchemaChanger):
def visit_column(self, delta):
table = delta.table
colspec = self.get_column_specification(delta.result_column)
if delta.result_column.autoincrement:
primary_keys = [c for c in table.primary_key.columns
if (c.autoincrement and
isinstance(c.type, sqltypes.Integer) and
not c.foreign_keys)]
if primary_keys:
first = primary_keys.pop(0)
if first.name == delta.current_name:
colspec += " AUTO_INCREMENT"
old_col_name = self.preparer.quote(delta.current_name, table.quote)
self.start_alter_table(table)
self.append("CHANGE COLUMN %s " % old_col_name)
self.append(colspec)
self.execute()
def visit_index(self, param):
# If MySQL can do this, I can't find how
raise exceptions.NotSupportedError("MySQL cannot rename indexes")
class MySQLConstraintGenerator(ansisql.ANSIConstraintGenerator):
pass
added migrations from 1.2.X to 1.3
r2000 class MySQLConstraintDropper(MySQLSchemaGenerator, ansisql.ANSIConstraintDropper):
def visit_migrate_check_constraint(self, *p, **k):
raise exceptions.NotSupportedError("MySQL does not support CHECK"
" constraints, use triggers instead.")
added dbmigrate package, added model changes...
r833
class MySQLDialect(ansisql.ANSIDialect):
columngenerator = MySQLColumnGenerator
columndropper = MySQLColumnDropper
schemachanger = MySQLSchemaChanger
constraintgenerator = MySQLConstraintGenerator
constraintdropper = MySQLConstraintDropper