@@ -146,6 +146,47 @@ create table open_message (
146
146
foreign key (epoch_setting_id) references epoch_setting (epoch_setting_id),
147
147
foreign key (signed_entity_type_id) references signed_entity_type (signed_entity_type_id)
148
148
);
149
+ "# ,
150
+ ) ,
151
+ // Migration 6
152
+ // Add the `signer_registration` table and migration data from the previous
153
+ // `verification_key` JSON format.
154
+ // TODO: activate FK w/ signer table exists `foreign key (signer_id) references signer(signer_id)`
155
+ SqlMigration :: new(
156
+ 6 ,
157
+ r#"
158
+ create table signer_registration (
159
+ signer_id text not null,
160
+ epoch_setting_id integer not null,
161
+ verification_key text not null,
162
+ verification_key_signature text,
163
+ operational_certificate text,
164
+ kes_period integer,
165
+ stake integer,
166
+ created_at text not null default current_timestamp,
167
+ primary key (epoch_setting_id, signer_id)
168
+ foreign key (epoch_setting_id) references epoch_setting(epoch_setting_id)
169
+ );
170
+ create table if not exists verification_key (key_hash text primary key, key json not null, value json not null);
171
+ insert into signer_registration (signer_id,
172
+ epoch_setting_id,
173
+ verification_key,
174
+ verification_key_signature,
175
+ operational_certificate,
176
+ kes_period,
177
+ stake)
178
+ select
179
+ verification_key_signer.key as signer_id,
180
+ verification_key.key as epoch_setting_id,
181
+ json_extract(verification_key_signer.value, '$.verification_key') as verification_key,
182
+ json_extract(verification_key_signer.value, '$.verification_key_signature') as verification_key_signature,
183
+ json_extract(verification_key_signer.value, '$.operational_certificate') as operational_certificate,
184
+ json_extract(verification_key_signer.value, '$.kes_period') as kes_period,
185
+ stake_pool.stake as stake
186
+ from verification_key, json_each(verification_key.value) as verification_key_signer
187
+ left join stake_pool on stake_pool.stake_pool_id = verification_key_signer.key and stake_pool.epoch = verification_key.key
188
+ order by verification_key.key, verification_key_signer.key asc;
189
+ drop table verification_key;
149
190
"# ,
150
191
) ,
151
192
]
0 commit comments