'fields' is apparently reserved in MySQL 4, fix migration scripts that use it unaliased. Thanks John Eppley.

This commit is contained in:
Nate Coraor
2011-06-02 12:11:53 -04:00
parent 90aeffb5e6
commit da2475b3e0
2 changed files with 6 additions and 6 deletions
@@ -39,7 +39,7 @@ def upgrade():
return ''
# Go through the entire table and add a 'name' attribute for each field
# in the list of fields for each form definition
cmd = "SELECT id, fields FROM form_definition"
cmd = "SELECT f.id, f.fields FROM form_definition AS f"
result = db_session.execute( cmd )
for row in result:
form_definition_id = row[0]
@@ -53,7 +53,7 @@ def upgrade():
field[ 'helptext' ] = field[ 'helptext' ].replace("'", "''").replace('"', "")
field[ 'label' ] = field[ 'label' ].replace("'", "''")
fields_json = to_json_string( fields_list )
cmd = "UPDATE form_definition SET fields='%s' WHERE id=%i" %( fields_json, form_definition_id )
cmd = "UPDATE form_definition AS f SET f.fields='%s' WHERE f.id=%i" %( fields_json, form_definition_id )
db_session.execute( cmd )
# replace the values list in the content field of the form_values table with a name:value dict
cmd = "SELECT form_values.id, form_values.content, form_definition.fields" \
@@ -112,7 +112,7 @@ def downgrade():
cmd = "UPDATE form_values SET content='%s' WHERE id=%i" %( to_json_string( values_list ), form_values_id )
db_session.execute( cmd )
# remove name attribute from the field column of the form_definition table
cmd = "SELECT id, fields FROM form_definition"
cmd = "SELECT f.id, f.fields FROM form_definition AS f"
result = db_session.execute( cmd )
for row in result:
form_definition_id = row[0]
@@ -124,5 +124,5 @@ def downgrade():
for index, field in enumerate( fields_list ):
if field.has_key( 'name' ):
del field[ 'name' ]
cmd = "UPDATE form_definition SET fields='%s' WHERE id=%i" %( to_json_string( fields_list ), form_definition_id )
cmd = "UPDATE form_definition AS f SET f.fields='%s' WHERE id=%i" %( to_json_string( fields_list ), form_definition_id )
db_session.execute( cmd )
@@ -32,7 +32,7 @@ def _sniffnfix_pg9_hex(value):
def upgrade():
print __doc__
metadata.reflect()
cmd = "SELECT form_values.id as id, form_values.content as field_values, form_definition.fields as fields " \
cmd = "SELECT form_values.id as id, form_values.content as field_values, form_definition.fields as fdfields " \
+ " FROM form_definition, form_values " \
+ " WHERE form_values.form_definition_id=form_definition.id " \
+ " ORDER BY form_values.id"
@@ -46,7 +46,7 @@ def upgrade():
except Exception, e:
corrupted_rows = corrupted_rows + 1
# content field is corrupted
fields_list = from_json_string( _sniffnfix_pg9_hex( str( row['fields'] ) ) )
fields_list = from_json_string( _sniffnfix_pg9_hex( str( row['fdfields'] ) ) )
field_values_str = _sniffnfix_pg9_hex( str( row['field_values'] ) )
try:
#Encoding errors? Just to be safe.