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
>>>>>>
>>>>>

-- 



Reply via email to