2
0
mirror of https://github.com/ACSPRI/queXS synced 2024-04-02 12:12:16 +00:00
Files
CATI_Tool/sample var update and fix.txt
Alex 7e774dc1ee Here it is
REWORKED sample strorage and sample variables organizatoin to have edit/delete/change options

Please, be very carefull with update
2015-05-17 18:04:19 +03:00

76 lines
3.5 KiB
Plaintext

!!! PRIOR TO ANY FURTHER CHANGES -> MAKE a backup copy of 'quexs' database ! and working QUEXS folder on server !!!
- in case smth will go wrong you may loose your data!!!
next steps should be done manually (used phpMyAdmin for sql management) , sql querries are for original 'quexs' sql DB structure
-->> 1st create new table columns:
/* insert var_id + type into sample_import_var_restrict table, fill var_id with continuous numbers (unique)*/
ALTER TABLE `sample_import_var_restrict` ADD `var_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT AFTER `sample_import_id`;
ALTER TABLE `sample_import_var_restrict` ADD `type` SMALLINT( 10 ) UNSIGNED NOT NULL AFTER `var`;
ALTER TABLE `sample_import_var_restrict` DROP PRIMARY KEY, ADD PRIMARY KEY(`var_id`)
/* insert var_id into sample_var table */
ALTER TABLE `sample_var` ADD `var_id` BIGINT( 20 ) UNSIGNED NOT NULL AFTER `sample_id`
-->> 2nd fill created columns with corresponding data
/* update sample_var table */
UPDATE `sample_var` as sv ,`sample`as s, `sample_import_var_restrict` as sivr SET sv.`var_id`=sivr.`var_id` WHERE sv.`var` LIKE sivr.`var` AND sv.`sample_id`=s.`sample_id` AND s.`import_id`=sivr.`sample_import_id`
/* update type @ sample_import_var_restrict table, insert corresponding values from sample_var */
UPDATE `sample_import_var_restrict` ,
`sample_var` SET `sample_import_var_restrict`.`type` = `sample_var`.`type` WHERE `sample_import_var_restrict`.`var_id` = `sample_var`.`var_id`
--> 3d some cleanup
/*--> check if there're unmatched strings for previously "de-identified" samples*/
SELECT * FROM `sample` LEFT JOIN `sample_var` ON (`sample`.sample_id = `sample_var`.sample_id) WHERE `sample_var`.sample_id IS NULL
/* --> delete `Time_zone_name` and `phone` data from `sample` table for previously "de-identified" samples from `sample_var` table*/
UPDATE `sample` LEFT JOIN `sample_var` ON (`sample`.sample_id = `sample_var`.sample_id) SET `Time_zone_name`= '',`phone`= '' WHERE `sample_var`.sample_id IS NULL
/* delete records for deidentified sample strings*/
DELETE FROM `sample_import_var_restrict` WHERE `type` =0
--> !!! VERY Important !!! check that collations and character sets are the same for all tables in DB (f.i. utf8_unicode_ci )
probably need some php and sql querry here...
--> !!!!QUOTA Row SHOULD BE FINISHED AND CLEARED FOR ALL SAMPLES AND QUESTtionnaires!!!!
--> (could influence quota calculation and behaviour because now switched to sample.var_id instead of sample.var )
/* add column for var_id*/
ALTER TABLE `questionnaire_sample_quota_row` ADD `exclude_var_id` BIGINT( 20 ) NOT NULL AFTER `completions`
/*fill `exclude_var_id` with relevant data for `exclude_var_id` = `var_id`*/
UPDATE `questionnaire_sample_quota_row` as qsqr, `sample_import_var_restrict` as sivr SET qsqr.exclude_var_id = sivr.var_id WHERE qsqr.sample_import_id = sivr.sample_import_id and qsqr.exclude_var = sivr.var
--> 4th update *.php files in 'quexs' folder according to the branch revisions
--> Finish list
CHECK program is working OK :
ADMIN - > samplesearch, samplelist, dataoutput, superviser, quotas , lime(export data)
operator panel -> displaying respondent data as required
update file admin/functions.import.php - > remove sample_var.`var`, sample_var.`type` from importing data
delete columns `var` and `type` from `sample_var` table
THE END
*enjoy sample freedom*