--- /dev/null
+-- Convert ressource table data to ressourceabstract table
+INSERT INTO ressourceabstract (id, name, path, pluginKey, owner) SELECT id, name, path, pluginKey, owner FROM ressource;
+
+--ALTER TABLE ressource DROP CONSTRAINT fk_res_owner;
+
+-- Convert ressourcedefinition data to ressourceabstarct : add it after ressource table data (merge)
+INSERT INTO RESSOURCEABSTRACT (ID, NAME, PATH, PLUGINKEY, TYPE, DESCRIPTION, OWNER) SELECT max(rd.id+r.id), RD.NAME, RD.RESSOURCEKEY, RD.pluginkey,RD.TYPE, RD.DESCRIPTION, RD.OWNER FROM RESSOURCEDEFINITION AS RD, RESSOURCE AS R group by rd.id, RD.NAME, RD.RESSOURCEKEY, RD.TYPE,RD.DESCRIPTION, RD.OWNER, RD.pluginkey order by rd.id;
+
+-- Delete old Ressource definition
+update ressourcedefinition set description='OBSO' where description is null;
+INSERT INTO RESSOURCEDEFINITION (ID, activityid, evaluationsubject) SELECT max(rd.id+r.id), RD.activityid, RD.evaluationsubject FROM RESSOURCEDEFINITION AS RD, RESSOURCE AS R group by rd.id, rd.evaluationsubject, RD.activityid order by rd.id;
+delete from ressourcedefinition where description='OBSO';
+
+-- Drop columns of ressourcedefinition
+ALTER TABLE ressourcedefinition DROP COLUMN name;
+ALTER TABLE ressourcedefinition DROP COLUMN description;
+ALTER TABLE ressourcedefinition DROP COLUMN pluginKey;
+ALTER TABLE ressourcedefinition DROP COLUMN type;
+ALTER TABLE ressourcedefinition DROP COLUMN ressourceKey;
+ALTER TABLE ressourcedefinition DROP COLUMN owner;
+ALTER TABLE ressource DROP COLUMN name;
+ALTER TABLE ressource DROP COLUMN path;
+ALTER TABLE ressource DROP COLUMN pluginKey;
+ALTER TABLE ressource DROP COLUMN owner;
+
+-- Drop FK constraint on ressource
+ALTER TABLE ressource add constraint fk_res_resabs foreign key (id) references ressourceabstract(id);
+
+-- Drop FK constraint on event
+ALTER TABLE event DROP CONSTRAINT fk_ev_si;
+
+--ALTER TABLE ressourcedefinition add constraint fk_resdef_resabs foreign key (id) references ressourceabstract(id);
+--ALTER TABLE ressourcedefinition DROP CONSTRAINT fk_resdef_owner;
+
+-- Convert entitydefinition to entitydefinitionabstract
+INSERT INTO entitydefinitionabstract (id, name, description, processroledefinition) select id, name, description, processroledefinition FROM entitydefinition;
+
+-- Delete unnessecary columns
+ALTER TABLE entitydefinition DROP COLUMN name;
+ALTER TABLE entitydefinition DROP COLUMN description;
+ALTER TABLE entitydefinition DROP COLUMN processroledefinition;
+
+-- Add UNIQUE constraint on name of evaluationdefinition
+ALTER TABLE evaluationdefinition ADD CONSTRAINT pk_entitydefinition_unique_name UNIQUE(name);
+
+-- Add UNIQUE constraint on methodcertinstance table
+-- REMOVE BECAUSE PC coant have now multi MVI : ALTER TABLE methodvalidationinstance ADD CONSTRAINT methodvalidationinstance_plancomponent_key UNIQUE(plancomponent);
+ALTER TABLE methodcertinstance ADD CONSTRAINT methodcertinstance_plancomponent_key UNIQUE(plancomponent);
+
+-- DROP UNIQUE CONSTRAINT ON MVI
+ALTER TABLE methodvalidationinstance DROP CONSTRAINT methodvalidationinstance_plancomponent_key;
+
+-- Convert PID of scenarioDefintion to PID of scenariodefinitionabstract
+select updateScenarioDef();
+
+-- Delete constraint entitydefinition on entitydefinition_entity table (linking table)
+select deleteConstraint('entitydefinition_entity', 'entitydefinition', 'entity');
+
+
+-- Delete PID column on scenariDefinition table
+ALTER TABLE scenariodefinition DROP COLUMN pid
+
+-- #### UPDATE SEQUENCES ####
+
+-- Compute new value for ressoureceabstract sequence
+select init_sequence('ressourceabstract');
+
+-- Compute new value for entitydefinitionabstract sequence
+select init_sequence('entitydefinitionabstract');
+
+-- Delete old obsolete sequence
+drop sequence seq_ressource;
+drop sequence seq_ressourcedefinition;
+drop sequence seq_entitydefinition;
+
+
+-- Ajout de contrainte non null sur les clé etranger (1.6.4beta1)
+ALTER TABLE acquitment ALTER COLUMN scenarioinstance SET NOT NULL;
+
+-- CompetenceInstance
+ALTER TABLE competenceinstance ALTER COLUMN evaluationsubjectinstance SET NOT NULL;
+ALTER TABLE competenceinstance ALTER COLUMN level SET NOT NULL;
+ALTER TABLE competenceinstance ALTER COLUMN evaluationinstance SET NOT NULL;
+ALTER TABLE competenceinstance ALTER COLUMN competence SET NOT NULL;
+
+-- Preferences
+ALTER TABLE preferences ALTER COLUMN owner SET NOT NULL;
+
+-- EntityDefinitionAbstract
+ALTER TABLE entitydefinitionabstract ALTER COLUMN processroledefinition SET NOT NULL;
+
+-- EvaluationInstance
+ALTER TABLE evaluationinstance ALTER COLUMN evaluationdefinition SET NOT NULL;
+
+-- EvaluationSubject
+ALTER TABLE evaluationsubject ALTER COLUMN evaluationdefinition SET NOT NULL;
+
+-- EvaluationSubjectInstance
+ALTER TABLE evaluationsubjectinstance ALTER COLUMN evaluationsubject SET NOT NULL;
+ALTER TABLE evaluationsubjectinstance ALTER COLUMN evaluationinstance SET NOT NULL;
+
+-- EventActivity
+ALTER TABLE eventactivity ALTER COLUMN evaluationsubject SET NOT NULL;
+
+-- MessageRecipeint
+ALTER TABLE messagerecipient ALTER COLUMN recipient SET NOT NULL;
+ALTER TABLE messagerecipient ALTER COLUMN message SET NOT NULL;
+
+-- Level
+ALTER TABLE level ALTER COLUMN methodeval SET NOT NULL;
+
+-- Notification
+ALTER TABLE notification ALTER COLUMN recipient SET NOT NULL;
+
+-- ProcessRoleDefinition
+ALTER TABLE processroledefinition ALTER COLUMN pid SET NOT NULL;
+
+-- Property
+ALTER TABLE property ALTER COLUMN pid SET NOT NULL;
+
+-- ResourceCert
+ALTER TABLE ressourcecert ALTER COLUMN usercertinstance SET NOT NULL;
+
+-- RessourceDefinition
+ALTER TABLE ressourcedefinition ALTER COLUMN evaluationsubject SET NOT NULL;
+
+-- Ressource
+ALTER TABLE ressource ALTER COLUMN evaluationsubjectinstance SET NOT NULL;
+
+-- SecraioDefinitonAbstract
+ALTER TABLE scenariodefinitionabstract ALTER COLUMN pid SET NOT NULL;
+
+-- ScenrioDefinition
+ALTER TABLE scenariodefinition ALTER COLUMN evaluationdefinition SET NOT NULL;
+
+-- ScenarioDefinitionValidation
+ALTER TABLE scenariodefinitionvalidation ALTER COLUMN plancomponent SET NOT NULL;
+
+--ScenrioDefCert
+ALTER TABLE scenariodefcert ALTER COLUMN planref SET NOT NULL;
+
+-- ScenarioDefinitionPlan
+ALTER TABLE scenariodefinitionplan ALTER COLUMN plan SET NOT NULL;
+
+-- SceanrioInstance
+ALTER TABLE scenarioinstance ALTER COLUMN evaluationinstance SET NOT NULL;
+ALTER TABLE scenarioinstance ALTER COLUMN evaluationsubjectinstance SET NOT NULL;
+
+-- ScenarioInstanceAbstract
+ALTER TABLE scenarioinstanceabstract ALTER COLUMN scenariodefinition SET NOT NULL;
+
+-- UserCertInstance
+ALTER TABLE usercertinstance ALTER COLUMN owner SET NOT NULL;
+
+-- Affectation
+ALTER TABLE affectation ALTER COLUMN role SET NOT NULL;
+ALTER TABLE affectation ALTER COLUMN entity SET NOT NULL;
+
+-- Remove EvaluationInstance Column
+ALTER TABLE competenceinstance DROP COLUMN evaluationInstance;
+ALTER TABLE evaluationsubjectinstance DROP COLUMN evaluationInstance;
+
+
+