Make migration more sane.

This commit is contained in:
Moxie Marlinspike 2014-02-13 16:56:08 -08:00
parent a6463df5bb
commit 35e212a30f
1 changed files with 6 additions and 1 deletions

View File

@ -82,7 +82,9 @@
<column name="data" type="json" /> <column name="data" type="json" />
</addColumn> </addColumn>
<sql>UPDATE accounts SET data = CAST(('{"number" : "' || number || '", "supportsSms" : ' || supports_sms || ', "devices" : [{"id" : 1, "authToken" : "' || auth_token || '", "salt" : "' || salt || '"' || CASE WHEN signaling_key IS NOT NULL THEN ', "signalingKey" : "' || signaling_key || '"' ELSE '' END || CASE WHEN gcm_id IS NOT NULL THEN ', "gcmId" : "' || gcm_id || '"' ELSE '' END || CASE WHEN apn_id IS NOT NULL THEN ', "apnId" : "' || apn_id || '"' ELSE '' END || '}]}') AS json);</sql> <sql>CREATE type device_t AS (id integer, "authToken" varchar(255), salt varchar(255), "signalingKey" varchar(255), "gcmId" text, "apnId" text);</sql>
<sql>CREATE type account_t AS (number varchar(255), "supportsSms" smallint, devices device_t array);</sql>
<sql>UPDATE accounts SET data = row_to_json(row(number, supports_sms, array[row(1, auth_token, salt, signaling_key, gcm_id, apn_id)::device_t])::account_t)</sql>
<addNotNullConstraint tableName="accounts" columnName="data"/> <addNotNullConstraint tableName="accounts" columnName="data"/>
@ -93,6 +95,9 @@
<dropColumn tableName="accounts" columnName="apn_id"/> <dropColumn tableName="accounts" columnName="apn_id"/>
<dropColumn tableName="accounts" columnName="supports_sms"/> <dropColumn tableName="accounts" columnName="supports_sms"/>
<sql>DROP type account_t;</sql>
<sql>DROP type device_t;</sql>
<addColumn tableName="keys"> <addColumn tableName="keys">
<column name="device_id" type="bigint" defaultValue="1"> <column name="device_id" type="bigint" defaultValue="1">
<constraints nullable="false" /> <constraints nullable="false" />