I reverted it so there should be no problem. This leave the original problem. If people add an auth signature, they must manually change is_active=None to is_active=True.
On Saturday, 22 December 2012 13:59:13 UTC-6, Adi wrote: > > let me know when you change. i can test again... > > On Saturday, December 22, 2012 2:40:19 PM UTC-5, Massimo Di Pierro wrote: >> >> This is not exactly what I was hoping for but it shows a problem with >> trunk. >> >> It migrates is_active form notnull=False to notnull=True and then tries >> to copy the old data (which include Null values). >> >> This will break the migration. It worked for you because the step was >> only faked. The creation of the new table is never a problem. >> >> I have reverted the change in trunk. >> >> Massimo >> >> >> On Saturday, 22 December 2012 13:28:13 UTC-6, Adi wrote: >>> >>> >>> My app was in a fake migration mode, and when I enabled a migration it >>> wanted to re-ecreate two existing tables, one regular (pmt), the other >>> archive (customer_archive)... (sql.log bellow). >>> >>> I renamed existing tables in order to proceed... >>> >>> What I see is that archive table got created with is_active notnull, and >>> default T, while existing tables stayed as is... >>> >>> Tried updating record in customer table and all worked ok... >>> >>> >>> sql.log: >>> >>> timestamp: 2012-12-22T13:57:59.269217 >>> ALTER TABLE lookup ADD is_active__tmp CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE lookup SET is_active__tmp=is_active; >>> faked! >>> ALTER TABLE lookup DROP COLUMN is_active; >>> faked! >>> ALTER TABLE lookup ADD is_active CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE lookup SET is_active=is_active__tmp; >>> faked! >>> ALTER TABLE lookup DROP COLUMN is_active__tmp; >>> faked! >>> timestamp: 2012-12-22T13:57:59.298807 >>> ALTER TABLE comment ADD is_active__tmp CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE comment SET is_active__tmp=is_active; >>> faked! >>> ALTER TABLE comment DROP COLUMN is_active; >>> faked! >>> ALTER TABLE comment ADD is_active CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE comment SET is_active=is_active__tmp; >>> faked! >>> ALTER TABLE comment DROP COLUMN is_active__tmp; >>> faked! >>> timestamp: 2012-12-22T13:57:59.342240 >>> ALTER TABLE configuration ADD is_active__tmp CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE configuration SET is_active__tmp=is_active; >>> faked! >>> ALTER TABLE configuration DROP COLUMN is_active; >>> faked! >>> ALTER TABLE configuration ADD is_active CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE configuration SET is_active=is_active__tmp; >>> faked! >>> ALTER TABLE configuration DROP COLUMN is_active__tmp; >>> faked! >>> timestamp: 2012-12-22T13:57:59.375178 >>> ALTER TABLE supplier ADD is_active__tmp CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE supplier SET is_active__tmp=is_active; >>> faked! >>> ALTER TABLE supplier DROP COLUMN is_active; >>> faked! >>> ALTER TABLE supplier ADD is_active CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE supplier SET is_active=is_active__tmp; >>> faked! >>> ALTER TABLE supplier DROP COLUMN is_active__tmp; >>> faked! >>> timestamp: 2012-12-22T13:57:59.415936 >>> ALTER TABLE customer ADD is_active__tmp CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE customer SET is_active__tmp=is_active; >>> faked! >>> ALTER TABLE customer DROP COLUMN is_active; >>> faked! >>> ALTER TABLE customer ADD is_active CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE customer SET is_active=is_active__tmp; >>> faked! >>> ALTER TABLE customer DROP COLUMN is_active__tmp; >>> faked! >>> timestamp: 2012-12-22T13:57:59.464933 >>> ALTER TABLE next_po_number ADD is_active__tmp CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE next_po_number SET is_active__tmp=is_active; >>> faked! >>> ALTER TABLE next_po_number DROP COLUMN is_active; >>> faked! >>> ALTER TABLE next_po_number ADD is_active CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE next_po_number SET is_active=is_active__tmp; >>> faked! >>> ALTER TABLE next_po_number DROP COLUMN is_active__tmp; >>> faked! >>> timestamp: 2012-12-22T13:57:59.511872 >>> ALTER TABLE purchase_order ADD is_active__tmp CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE purchase_order SET is_active__tmp=is_active; >>> faked! >>> ALTER TABLE purchase_order DROP COLUMN is_active; >>> faked! >>> ALTER TABLE purchase_order ADD is_active CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE purchase_order SET is_active=is_active__tmp; >>> faked! >>> ALTER TABLE purchase_order DROP COLUMN is_active__tmp; >>> faked! >>> timestamp: 2012-12-22T13:57:59.618962 >>> ALTER TABLE product_family ADD is_active__tmp CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE product_family SET is_active__tmp=is_active; >>> faked! >>> ALTER TABLE product_family DROP COLUMN is_active; >>> faked! >>> ALTER TABLE product_family ADD is_active CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE product_family SET is_active=is_active__tmp; >>> faked! >>> ALTER TABLE product_family DROP COLUMN is_active__tmp; >>> faked! >>> timestamp: 2012-12-22T13:57:59.650635 >>> ALTER TABLE sku ADD is_active__tmp CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE sku SET is_active__tmp=is_active; >>> faked! >>> ALTER TABLE sku DROP COLUMN is_active; >>> faked! >>> ALTER TABLE sku ADD is_active CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE sku SET is_active=is_active__tmp; >>> faked! >>> ALTER TABLE sku DROP COLUMN is_active__tmp; >>> faked! >>> timestamp: 2012-12-22T13:57:59.688207 >>> ALTER TABLE item ADD is_active__tmp CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE item SET is_active__tmp=is_active; >>> faked! >>> ALTER TABLE item DROP COLUMN is_active; >>> faked! >>> ALTER TABLE item ADD is_active CHAR(1) NOT NULL DEFAULT 'T'; >>> faked! >>> UPDATE item SET is_active=is_active__tmp; >>> faked! >>> ALTER TABLE item DROP COLUMN is_active__tmp; >>> faked! >>> timestamp: 2012-12-22T14:05:28.630734 >>> CREATE TABLE pmt( >>> id INT AUTO_INCREMENT NOT NULL, >>> tbl_uuid VARCHAR(64), >>> po_id INT, INDEX po_id__idx (po_id), FOREIGN KEY (po_id) REFERENCES >>> purchase_order (id) ON DELETE CASCADE, >>> currency VARCHAR(255), >>> invoice_no VARCHAR(255), >>> amount_paid DOUBLE, >>> date_wire_actg DATE, >>> partial_payment VARCHAR(255), >>> amount_paid2 DOUBLE, >>> date_to_actg2 DATE, >>> amount_paid3 DOUBLE, >>> date_to_actg3 DATE, >>> amount_paid4 DOUBLE, >>> date_to_actg4 DATE, >>> payment_notes1 LONGTEXT, >>> payment_notes2 LONGTEXT, >>> payment_notes3 LONGTEXT, >>> is_active CHAR(1) NOT NULL DEFAULT 'T', >>> created_on DATETIME, >>> created_by INT, INDEX created_by__idx (created_by), FOREIGN KEY >>> (created_by) REFERENCES auth_user (id) ON DELETE CASCADE, >>> modified_on DATETIME, >>> modified_by INT, INDEX modified_by__idx (modified_by), FOREIGN KEY >>> (modified_by) REFERENCES auth_user (id) ON DELETE CASCADE, >>> PRIMARY KEY(id) >>> ) ENGINE=InnoDB CHARACTER SET utf8; >>> timestamp: 2012-12-22T14:11:13.034603 >>> CREATE TABLE pmt( >>> id INT AUTO_INCREMENT NOT NULL, >>> tbl_uuid VARCHAR(64), >>> po_id INT, INDEX po_id__idx (po_id), FOREIGN KEY (po_id) REFERENCES >>> purchase_order (id) ON DELETE CASCADE, >>> currency VARCHAR(255), >>> invoice_no VARCHAR(255), >>> amount_paid DOUBLE, >>> date_wire_actg DATE, >>> partial_payment VARCHAR(255), >>> amount_paid2 DOUBLE, >>> date_to_actg2 DATE, >>> amount_paid3 DOUBLE, >>> date_to_actg3 DATE, >>> amount_paid4 DOUBLE, >>> date_to_actg4 DATE, >>> payment_notes1 LONGTEXT, >>> payment_notes2 LONGTEXT, >>> payment_notes3 LONGTEXT, >>> is_active CHAR(1) NOT NULL DEFAULT 'T', >>> created_on DATETIME, >>> created_by INT, INDEX created_by__idx (created_by), FOREIGN KEY >>> (created_by) REFERENCES auth_user (id) ON DELETE CASCADE, >>> modified_on DATETIME, >>> modified_by INT, INDEX modified_by__idx (modified_by), FOREIGN KEY >>> (modified_by) REFERENCES auth_user (id) ON DELETE CASCADE, >>> PRIMARY KEY(id) >>> ) ENGINE=InnoDB CHARACTER SET utf8; >>> success! >>> timestamp: 2012-12-22T14:16:04.319236 >>> CREATE TABLE customer_archive( >>> current_record INT, INDEX current_record__idx (current_record), FOREIGN >>> KEY (current_record) REFERENCES customer (id) ON DELETE CASCADE, >>> id INT AUTO_INCREMENT NOT NULL, >>> tbl_uuid VARCHAR(64), >>> name VARCHAR(255), >>> number VARCHAR(255), >>> address LONGTEXT, >>> ship_to LONGTEXT, >>> payment_term INT, INDEX payment_term__idx (payment_term), FOREIGN KEY >>> (payment_term) REFERENCES lookup (id) ON DELETE CASCADE, >>> forwarder LONGTEXT, >>> destination VARCHAR(255), >>> attn VARCHAR(255), >>> phone VARCHAR(255), >>> fax VARCHAR(255), >>> email VARCHAR(255), >>> bl_telex_released VARCHAR(255), >>> orig_docs_to LONGTEXT, >>> doc_requirements LONGTEXT, >>> special_instructions LONGTEXT, >>> shipping_marks LONGTEXT, >>> is_active CHAR(1) NOT NULL DEFAULT 'T', >>> created_on DATETIME, >>> created_by INT, INDEX created_by__idx (created_by), FOREIGN KEY >>> (created_by) REFERENCES auth_user (id) ON DELETE CASCADE, >>> modified_on DATETIME, >>> modified_by INT, INDEX modified_by__idx (modified_by), FOREIGN KEY >>> (modified_by) REFERENCES auth_user (id) ON DELETE CASCADE, >>> PRIMARY KEY(id) >>> ) ENGINE=InnoDB CHARACTER SET utf8; >>> timestamp: 2012-12-22T14:18:50.404571 >>> CREATE TABLE customer_archive( >>> current_record INT, INDEX current_record__idx (current_record), FOREIGN >>> KEY (current_record) REFERENCES customer (id) ON DELETE CASCADE, >>> id INT AUTO_INCREMENT NOT NULL, >>> tbl_uuid VARCHAR(64), >>> name VARCHAR(255), >>> number VARCHAR(255), >>> address LONGTEXT, >>> ship_to LONGTEXT, >>> payment_term INT, INDEX payment_term__idx (payment_term), FOREIGN KEY >>> (payment_term) REFERENCES lookup (id) ON DELETE CASCADE, >>> forwarder LONGTEXT, >>> destination VARCHAR(255), >>> attn VARCHAR(255), >>> phone VARCHAR(255), >>> fax VARCHAR(255), >>> email VARCHAR(255), >>> bl_telex_released VARCHAR(255), >>> orig_docs_to LONGTEXT, >>> doc_requirements LONGTEXT, >>> special_instructions LONGTEXT, >>> shipping_marks LONGTEXT, >>> is_active CHAR(1) NOT NULL DEFAULT 'T', >>> created_on DATETIME, >>> created_by INT, INDEX created_by__idx (created_by), FOREIGN KEY >>> (created_by) REFERENCES auth_user (id) ON DELETE CASCADE, >>> modified_on DATETIME, >>> modified_by INT, INDEX modified_by__idx (modified_by), FOREIGN KEY >>> (modified_by) REFERENCES auth_user (id) ON DELETE CASCADE, >>> PRIMARY KEY(id) >>> ) ENGINE=InnoDB CHARACTER SET utf8; >>> success! >>> >>> >>> >>> >>> On Saturday, December 22, 2012 1:56:28 PM UTC-5, Massimo Di Pierro wrote: >>>> >>>> Specifically let me know: >>>> - after upgrade, do you see a migration in sql.log? >>>> - does everything seem to work or you get a ticket? >>>> >>>> Masimo >>>> >>>> On Saturday, 22 December 2012 12:30:25 UTC-6, Adi wrote: >>>>> >>>>> do you mean: db._common_fields.append(auth.signature) >>>>> >>>>> i have it, and can test now >>>>> >>>>> On Saturday, December 22, 2012 12:44:06 PM UTC-5, Massimo Di Pierro >>>>> wrote: >>>>>> >>>>>> If you have fields with auth.signature and mysql/pgsql could you help >>>>>> me test the latest trunk? >>>>>> >>>>>> The reason is that I changed the is_active field from notnull=False >>>>>> to notnull=True. This should trigger a migration of your data. I want to >>>>>> make sure nothing breaks. >>>>>> >>>>>> Can you confirm this is ok? >>>>>> >>>>>> Massimo >>>>>> >>>>> --

