lamindb 1.5.2__py3-none-any.whl → 1.6a2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. lamindb/__init__.py +24 -6
  2. lamindb/_finish.py +5 -5
  3. lamindb/_tracked.py +1 -1
  4. lamindb/_view.py +4 -4
  5. lamindb/core/_context.py +32 -6
  6. lamindb/core/_settings.py +1 -1
  7. lamindb/core/datasets/mini_immuno.py +8 -0
  8. lamindb/core/loaders.py +1 -1
  9. lamindb/core/storage/_anndata_accessor.py +9 -9
  10. lamindb/core/storage/_valid_suffixes.py +1 -0
  11. lamindb/core/storage/_zarr.py +32 -107
  12. lamindb/curators/__init__.py +19 -2
  13. lamindb/curators/_cellxgene_schemas/__init__.py +3 -3
  14. lamindb/curators/_legacy.py +15 -19
  15. lamindb/curators/core.py +247 -80
  16. lamindb/errors.py +2 -2
  17. lamindb/migrations/0069_squashed.py +8 -8
  18. lamindb/migrations/0071_lamindbv1_migrate_schema.py +3 -3
  19. lamindb/migrations/0073_merge_ourprojects.py +7 -7
  20. lamindb/migrations/0075_lamindbv1_part5.py +1 -1
  21. lamindb/migrations/0077_lamindbv1_part6b.py +3 -3
  22. lamindb/migrations/0080_polish_lamindbv1.py +2 -2
  23. lamindb/migrations/0088_schema_components.py +1 -1
  24. lamindb/migrations/0090_runproject_project_runs.py +2 -2
  25. lamindb/migrations/0091_alter_featurevalue_options_alter_space_options_and_more.py +1 -1
  26. lamindb/migrations/0094_writeloglock_writelogmigrationstate_and_more.py +84 -0
  27. lamindb/migrations/0095_remove_rundata_flextable.py +155 -0
  28. lamindb/migrations/0096_remove_artifact__param_values_and_more.py +266 -0
  29. lamindb/migrations/0097_remove_schemaparam_param_remove_paramvalue_param_and_more.py +27 -0
  30. lamindb/migrations/0098_alter_feature_type_alter_project_type_and_more.py +656 -0
  31. lamindb/migrations/0099_alter_writelog_seqno.py +22 -0
  32. lamindb/migrations/0100_branch_alter_artifact__branch_code_and_more.py +102 -0
  33. lamindb/migrations/0101_alter_artifact_hash_alter_feature_name_and_more.py +444 -0
  34. lamindb/migrations/0102_remove_writelog_branch_code_and_more.py +72 -0
  35. lamindb/migrations/0103_remove_writelog_migration_state_and_more.py +46 -0
  36. lamindb/migrations/{0090_squashed.py → 0103_squashed.py} +1013 -1009
  37. lamindb/models/__init__.py +35 -18
  38. lamindb/models/_describe.py +4 -4
  39. lamindb/models/_django.py +38 -4
  40. lamindb/models/_feature_manager.py +66 -123
  41. lamindb/models/_from_values.py +13 -13
  42. lamindb/models/_label_manager.py +8 -6
  43. lamindb/models/_relations.py +7 -7
  44. lamindb/models/artifact.py +166 -156
  45. lamindb/models/can_curate.py +25 -25
  46. lamindb/models/collection.py +48 -18
  47. lamindb/models/core.py +3 -3
  48. lamindb/models/feature.py +88 -60
  49. lamindb/models/has_parents.py +17 -17
  50. lamindb/models/project.py +52 -24
  51. lamindb/models/query_manager.py +5 -5
  52. lamindb/models/query_set.py +61 -37
  53. lamindb/models/record.py +158 -1583
  54. lamindb/models/run.py +39 -176
  55. lamindb/models/save.py +6 -6
  56. lamindb/models/schema.py +33 -44
  57. lamindb/models/sqlrecord.py +1743 -0
  58. lamindb/models/transform.py +17 -33
  59. lamindb/models/ulabel.py +21 -15
  60. {lamindb-1.5.2.dist-info → lamindb-1.6a2.dist-info}/METADATA +7 -11
  61. lamindb-1.6a2.dist-info/RECORD +118 -0
  62. lamindb/core/storage/_anndata_sizes.py +0 -41
  63. lamindb/models/flextable.py +0 -163
  64. lamindb-1.5.2.dist-info/RECORD +0 -109
  65. {lamindb-1.5.2.dist-info → lamindb-1.6a2.dist-info}/LICENSE +0 -0
  66. {lamindb-1.5.2.dist-info → lamindb-1.6a2.dist-info}/WHEEL +0 -0
@@ -1,4 +1,4 @@
1
- # Generated by Django 5.2 on 2025-03-05 11:53
1
+ # Generated by Django 5.2 on 2025-05-29 12:43
2
2
 
3
3
  import django.core.validators
4
4
  import django.db.models.deletion
@@ -6,12 +6,12 @@ import django.db.models.functions.datetime
6
6
  from django.db import migrations, models
7
7
 
8
8
  import lamindb.base.fields
9
- import lamindb.base.ids
9
+ import lamindb.base.uids
10
10
  import lamindb.base.users
11
11
  import lamindb.models.can_curate
12
12
  import lamindb.models.has_parents
13
- import lamindb.models.record
14
13
  import lamindb.models.run
14
+ import lamindb.models.sqlrecord
15
15
 
16
16
 
17
17
  class Migration(migrations.Migration):
@@ -111,6 +111,19 @@ class Migration(migrations.Migration):
111
111
  ("lamindb", "0088_schema_components"),
112
112
  ("lamindb", "0089_subsequent_runs"),
113
113
  ("lamindb", "0090_runproject_project_runs"),
114
+ ("lamindb", "0091_alter_featurevalue_options_alter_space_options_and_more"),
115
+ ("lamindb", "0092_alter_artifactfeaturevalue_artifact_and_more"),
116
+ ("lamindb", "0093_alter_schemacomponent_unique_together"),
117
+ ("lamindb", "0094_writeloglock_writelogmigrationstate_and_more"),
118
+ ("lamindb", "0095_remove_rundata_flextable"),
119
+ ("lamindb", "0096_remove_artifact__param_values_and_more"),
120
+ ("lamindb", "0097_remove_schemaparam_param_remove_paramvalue_param_and_more"),
121
+ ("lamindb", "0098_alter_feature_type_alter_project_type_and_more"),
122
+ ("lamindb", "0099_alter_writelog_seqno"),
123
+ ("lamindb", "0100_branch_alter_artifact__branch_code_and_more"),
124
+ ("lamindb", "0101_alter_artifact_hash_alter_feature_name_and_more"),
125
+ ("lamindb", "0102_remove_writelog_branch_code_and_more"),
126
+ ("lamindb", "0103_remove_writelog_migration_state_and_more"),
114
127
  ]
115
128
 
116
129
  dependencies = [] # type: ignore
@@ -148,75 +161,42 @@ class Migration(migrations.Migration):
148
161
  },
149
162
  ),
150
163
  migrations.CreateModel(
151
- name="Person",
164
+ name="Branch",
152
165
  fields=[
153
- (
154
- "_branch_code",
155
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
156
- ),
157
- (
158
- "_aux",
159
- lamindb.base.fields.JSONField(
160
- blank=True, db_default=None, default=None, null=True
161
- ),
162
- ),
163
- (
164
- "created_at",
165
- lamindb.base.fields.DateTimeField(
166
- blank=True,
167
- db_default=django.db.models.functions.datetime.Now(),
168
- db_index=True,
169
- editable=False,
170
- ),
171
- ),
172
- (
173
- "updated_at",
174
- lamindb.base.fields.DateTimeField(
175
- blank=True,
176
- db_default=django.db.models.functions.datetime.Now(),
177
- db_index=True,
178
- editable=False,
179
- ),
180
- ),
181
166
  ("id", models.AutoField(primary_key=True, serialize=False)),
167
+ ("name", models.CharField(db_index=True, max_length=100)),
182
168
  (
183
169
  "uid",
184
170
  lamindb.base.fields.CharField(
185
171
  blank=True,
172
+ db_default="M",
186
173
  db_index=True,
187
- default=lamindb.base.ids.base62_8,
174
+ default="M",
188
175
  editable=False,
189
- max_length=8,
176
+ max_length=12,
190
177
  unique=True,
191
178
  ),
192
179
  ),
193
180
  (
194
- "name",
181
+ "description",
195
182
  lamindb.base.fields.CharField(
196
- blank=True, db_index=True, default=None, max_length=255
197
- ),
198
- ),
199
- (
200
- "email",
201
- lamindb.base.fields.EmailField(
202
- blank=True, default=None, max_length=254, null=True
183
+ blank=True, default=None, max_length=255, null=True
203
184
  ),
204
185
  ),
205
186
  (
206
- "external",
207
- lamindb.base.fields.BooleanField(
208
- blank=True, db_index=True, default=True
187
+ "created_at",
188
+ lamindb.base.fields.DateTimeField(
189
+ blank=True,
190
+ db_default=django.db.models.functions.datetime.Now(),
191
+ db_index=True,
192
+ editable=False,
209
193
  ),
210
194
  ),
211
195
  ],
212
196
  options={
213
197
  "abstract": False,
198
+ "base_manager_name": "objects",
214
199
  },
215
- bases=(
216
- lamindb.models.can_curate.CanCurate,
217
- models.Model,
218
- lamindb.models.record.ValidateFields,
219
- ),
220
200
  ),
221
201
  migrations.CreateModel(
222
202
  name="Space",
@@ -227,9 +207,9 @@ class Migration(migrations.Migration):
227
207
  "uid",
228
208
  lamindb.base.fields.CharField(
229
209
  blank=True,
230
- db_default="00000000",
210
+ db_default="A",
231
211
  db_index=True,
232
- default="00000000",
212
+ default="A",
233
213
  editable=False,
234
214
  max_length=12,
235
215
  unique=True,
@@ -253,6 +233,7 @@ class Migration(migrations.Migration):
253
233
  ],
254
234
  options={
255
235
  "abstract": False,
236
+ "base_manager_name": "objects",
256
237
  },
257
238
  ),
258
239
  migrations.CreateModel(
@@ -311,6 +292,7 @@ class Migration(migrations.Migration):
311
292
  ],
312
293
  options={
313
294
  "abstract": False,
295
+ "base_manager_name": "objects",
314
296
  },
315
297
  bases=(models.Model, lamindb.models.can_curate.CanCurate),
316
298
  ),
@@ -333,10 +315,6 @@ class Migration(migrations.Migration):
333
315
  blank=True, db_index=True, default=True
334
316
  ),
335
317
  ),
336
- (
337
- "_branch_code",
338
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
339
- ),
340
318
  (
341
319
  "_aux",
342
320
  lamindb.base.fields.JSONField(
@@ -443,7 +421,6 @@ class Migration(migrations.Migration):
443
421
  editable=False,
444
422
  max_length=22,
445
423
  null=True,
446
- unique=True,
447
424
  ),
448
425
  ),
449
426
  (
@@ -491,6 +468,17 @@ class Migration(migrations.Migration):
491
468
  related_name="_action_targets", to="lamindb.artifact"
492
469
  ),
493
470
  ),
471
+ (
472
+ "branch",
473
+ lamindb.base.fields.ForeignKey(
474
+ blank=True,
475
+ db_column="_branch_code",
476
+ db_default=1,
477
+ default=1,
478
+ on_delete=django.db.models.deletion.PROTECT,
479
+ to="lamindb.branch",
480
+ ),
481
+ ),
494
482
  ],
495
483
  options={
496
484
  "abstract": False,
@@ -515,10 +503,6 @@ class Migration(migrations.Migration):
515
503
  blank=True, db_index=True, default=True
516
504
  ),
517
505
  ),
518
- (
519
- "_branch_code",
520
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
521
- ),
522
506
  (
523
507
  "_aux",
524
508
  lamindb.base.fields.JSONField(
@@ -549,7 +533,7 @@ class Migration(migrations.Migration):
549
533
  lamindb.base.fields.CharField(
550
534
  blank=True,
551
535
  db_index=True,
552
- default=lamindb.base.ids.base62_20,
536
+ default=lamindb.base.uids.base62_20,
553
537
  editable=False,
554
538
  max_length=20,
555
539
  unique=True,
@@ -602,6 +586,17 @@ class Migration(migrations.Migration):
602
586
  "_actions",
603
587
  models.ManyToManyField(related_name="+", to="lamindb.artifact"),
604
588
  ),
589
+ (
590
+ "branch",
591
+ lamindb.base.fields.ForeignKey(
592
+ blank=True,
593
+ db_column="_branch_code",
594
+ db_default=1,
595
+ default=1,
596
+ on_delete=django.db.models.deletion.PROTECT,
597
+ to="lamindb.branch",
598
+ ),
599
+ ),
605
600
  (
606
601
  "meta_artifact",
607
602
  lamindb.base.fields.OneToOneField(
@@ -649,7 +644,7 @@ class Migration(migrations.Migration):
649
644
  ),
650
645
  ),
651
646
  ],
652
- bases=(lamindb.models.record.LinkORM, models.Model),
647
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
653
648
  ),
654
649
  migrations.AddField(
655
650
  model_name="collection",
@@ -683,7 +678,7 @@ class Migration(migrations.Migration):
683
678
  ),
684
679
  ),
685
680
  ],
686
- bases=(lamindb.models.record.LinkORM, models.Model),
681
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
687
682
  ),
688
683
  migrations.CreateModel(
689
684
  name="CollectionReference",
@@ -708,15 +703,11 @@ class Migration(migrations.Migration):
708
703
  ),
709
704
  ),
710
705
  ],
711
- bases=(lamindb.models.record.LinkORM, models.Model),
706
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
712
707
  ),
713
708
  migrations.CreateModel(
714
709
  name="Feature",
715
710
  fields=[
716
- (
717
- "_branch_code",
718
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
719
- ),
720
711
  (
721
712
  "_aux",
722
713
  lamindb.base.fields.JSONField(
@@ -747,7 +738,7 @@ class Migration(migrations.Migration):
747
738
  lamindb.base.fields.CharField(
748
739
  blank=True,
749
740
  db_index=True,
750
- default=lamindb.base.ids.base62_12,
741
+ default=lamindb.base.uids.base62_12,
751
742
  editable=False,
752
743
  max_length=12,
753
744
  unique=True,
@@ -756,11 +747,7 @@ class Migration(migrations.Migration):
756
747
  (
757
748
  "name",
758
749
  lamindb.base.fields.CharField(
759
- blank=True,
760
- db_index=True,
761
- default=None,
762
- max_length=150,
763
- unique=True,
750
+ blank=True, db_index=True, default=None, max_length=150
764
751
  ),
765
752
  ),
766
753
  (
@@ -817,20 +804,34 @@ class Migration(migrations.Migration):
817
804
  "synonyms",
818
805
  lamindb.base.fields.TextField(blank=True, default=None, null=True),
819
806
  ),
820
- ("_expect_many", models.BooleanField(db_default=True, default=True)),
807
+ (
808
+ "_expect_many",
809
+ models.BooleanField(db_default=None, default=None, null=True),
810
+ ),
821
811
  (
822
812
  "_curation",
823
813
  lamindb.base.fields.JSONField(
824
814
  blank=True, db_default=None, default=None, null=True
825
815
  ),
826
816
  ),
817
+ (
818
+ "branch",
819
+ lamindb.base.fields.ForeignKey(
820
+ blank=True,
821
+ db_column="_branch_code",
822
+ db_default=1,
823
+ default=1,
824
+ on_delete=django.db.models.deletion.PROTECT,
825
+ to="lamindb.branch",
826
+ ),
827
+ ),
827
828
  (
828
829
  "type",
829
830
  lamindb.base.fields.ForeignKey(
830
831
  blank=True,
831
832
  null=True,
832
833
  on_delete=django.db.models.deletion.PROTECT,
833
- related_name="records",
834
+ related_name="features",
834
835
  to="lamindb.feature",
835
836
  ),
836
837
  ),
@@ -886,7 +887,7 @@ class Migration(migrations.Migration):
886
887
  ),
887
888
  ),
888
889
  ],
889
- bases=(lamindb.models.record.LinkORM, models.Model),
890
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
890
891
  ),
891
892
  migrations.CreateModel(
892
893
  name="ArtifactProject",
@@ -934,7 +935,7 @@ class Migration(migrations.Migration):
934
935
  ),
935
936
  ),
936
937
  ],
937
- bases=(lamindb.models.record.LinkORM, models.Model),
938
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
938
939
  ),
939
940
  migrations.CreateModel(
940
941
  name="FeatureProject",
@@ -959,7 +960,7 @@ class Migration(migrations.Migration):
959
960
  ),
960
961
  ),
961
962
  ],
962
- bases=(lamindb.models.record.LinkORM, models.Model),
963
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
963
964
  ),
964
965
  migrations.CreateModel(
965
966
  name="FeatureValue",
@@ -973,10 +974,6 @@ class Migration(migrations.Migration):
973
974
  verbose_name="ID",
974
975
  ),
975
976
  ),
976
- (
977
- "_branch_code",
978
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
979
- ),
980
977
  (
981
978
  "_aux",
982
979
  lamindb.base.fields.JSONField(
@@ -1003,6 +1000,17 @@ class Migration(migrations.Migration):
1003
1000
  null=True,
1004
1001
  ),
1005
1002
  ),
1003
+ (
1004
+ "branch",
1005
+ lamindb.base.fields.ForeignKey(
1006
+ blank=True,
1007
+ db_column="_branch_code",
1008
+ db_default=1,
1009
+ default=1,
1010
+ on_delete=django.db.models.deletion.PROTECT,
1011
+ to="lamindb.branch",
1012
+ ),
1013
+ ),
1006
1014
  (
1007
1015
  "feature",
1008
1016
  lamindb.base.fields.ForeignKey(
@@ -1017,6 +1025,7 @@ class Migration(migrations.Migration):
1017
1025
  ],
1018
1026
  options={
1019
1027
  "abstract": False,
1028
+ "base_manager_name": "objects",
1020
1029
  },
1021
1030
  ),
1022
1031
  migrations.CreateModel(
@@ -1037,7 +1046,7 @@ class Migration(migrations.Migration):
1037
1046
  lamindb.base.fields.ForeignKey(
1038
1047
  blank=True,
1039
1048
  on_delete=django.db.models.deletion.CASCADE,
1040
- related_name="+",
1049
+ related_name="links_featurevalue",
1041
1050
  to="lamindb.artifact",
1042
1051
  ),
1043
1052
  ),
@@ -1046,12 +1055,12 @@ class Migration(migrations.Migration):
1046
1055
  lamindb.base.fields.ForeignKey(
1047
1056
  blank=True,
1048
1057
  on_delete=django.db.models.deletion.PROTECT,
1049
- related_name="+",
1058
+ related_name="links_artifact",
1050
1059
  to="lamindb.featurevalue",
1051
1060
  ),
1052
1061
  ),
1053
1062
  ],
1054
- bases=(lamindb.models.record.LinkORM, models.Model),
1063
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
1055
1064
  ),
1056
1065
  migrations.AddField(
1057
1066
  model_name="artifact",
@@ -1063,21 +1072,8 @@ class Migration(migrations.Migration):
1063
1072
  ),
1064
1073
  ),
1065
1074
  migrations.CreateModel(
1066
- name="Param",
1075
+ name="Person",
1067
1076
  fields=[
1068
- (
1069
- "id",
1070
- models.BigAutoField(
1071
- auto_created=True,
1072
- primary_key=True,
1073
- serialize=False,
1074
- verbose_name="ID",
1075
- ),
1076
- ),
1077
- (
1078
- "_branch_code",
1079
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
1080
- ),
1081
1077
  (
1082
1078
  "_aux",
1083
1079
  lamindb.base.fields.JSONField(
@@ -1102,159 +1098,55 @@ class Migration(migrations.Migration):
1102
1098
  editable=False,
1103
1099
  ),
1104
1100
  ),
1101
+ ("id", models.AutoField(primary_key=True, serialize=False)),
1105
1102
  (
1106
- "name",
1107
- lamindb.base.fields.CharField(
1108
- blank=True, db_index=True, default=None, max_length=100
1109
- ),
1110
- ),
1111
- (
1112
- "dtype",
1103
+ "uid",
1113
1104
  lamindb.base.fields.CharField(
1114
1105
  blank=True,
1115
1106
  db_index=True,
1116
- default=None,
1117
- max_length=255,
1118
- null=True,
1119
- ),
1120
- ),
1121
- (
1122
- "is_type",
1123
- lamindb.base.fields.BooleanField(
1124
- blank=True, db_index=True, default=False, null=True
1125
- ),
1126
- ),
1127
- ("_expect_many", models.BooleanField(db_default=False, default=False)),
1128
- (
1129
- "type",
1130
- lamindb.base.fields.ForeignKey(
1131
- blank=True,
1132
- null=True,
1133
- on_delete=django.db.models.deletion.PROTECT,
1134
- related_name="records",
1135
- to="lamindb.param",
1136
- ),
1137
- ),
1138
- ],
1139
- options={
1140
- "abstract": False,
1141
- },
1142
- bases=(lamindb.models.can_curate.CanCurate, models.Model),
1143
- ),
1144
- migrations.CreateModel(
1145
- name="ParamValue",
1146
- fields=[
1147
- (
1148
- "id",
1149
- models.BigAutoField(
1150
- auto_created=True,
1151
- primary_key=True,
1152
- serialize=False,
1153
- verbose_name="ID",
1154
- ),
1155
- ),
1156
- (
1157
- "_branch_code",
1158
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
1159
- ),
1160
- (
1161
- "_aux",
1162
- lamindb.base.fields.JSONField(
1163
- blank=True, db_default=None, default=None, null=True
1164
- ),
1165
- ),
1166
- ("value", models.JSONField()),
1167
- (
1168
- "created_at",
1169
- lamindb.base.fields.DateTimeField(
1170
- blank=True,
1171
- db_default=django.db.models.functions.datetime.Now(),
1172
- db_index=True,
1107
+ default=lamindb.base.uids.base62_8,
1173
1108
  editable=False,
1109
+ max_length=8,
1110
+ unique=True,
1174
1111
  ),
1175
1112
  ),
1176
1113
  (
1177
- "hash",
1114
+ "name",
1178
1115
  lamindb.base.fields.CharField(
1179
- blank=True,
1180
- db_index=True,
1181
- default=None,
1182
- max_length=22,
1183
- null=True,
1184
- ),
1185
- ),
1186
- (
1187
- "param",
1188
- lamindb.base.fields.ForeignKey(
1189
- blank=True,
1190
- on_delete=django.db.models.deletion.CASCADE,
1191
- related_name="values",
1192
- to="lamindb.param",
1193
- ),
1194
- ),
1195
- (
1196
- "space",
1197
- lamindb.base.fields.ForeignKey(
1198
- blank=True,
1199
- db_default=1,
1200
- default=1,
1201
- on_delete=django.db.models.deletion.PROTECT,
1202
- to="lamindb.space",
1203
- ),
1204
- ),
1205
- (
1206
- "created_by",
1207
- lamindb.base.fields.ForeignKey(
1208
- blank=True,
1209
- default=lamindb.base.users.current_user_id,
1210
- on_delete=django.db.models.deletion.PROTECT,
1211
- related_name="+",
1212
- to="lamindb.user",
1116
+ blank=True, db_index=True, default=None, max_length=255
1213
1117
  ),
1214
1118
  ),
1215
- ],
1216
- ),
1217
- migrations.CreateModel(
1218
- name="ArtifactParamValue",
1219
- fields=[
1220
1119
  (
1221
- "created_at",
1222
- lamindb.base.fields.DateTimeField(
1223
- blank=True,
1224
- db_default=django.db.models.functions.datetime.Now(),
1225
- db_index=True,
1226
- editable=False,
1120
+ "email",
1121
+ lamindb.base.fields.EmailField(
1122
+ blank=True, default=None, max_length=254, null=True
1227
1123
  ),
1228
1124
  ),
1229
- ("id", models.BigAutoField(primary_key=True, serialize=False)),
1230
1125
  (
1231
- "artifact",
1232
- lamindb.base.fields.ForeignKey(
1233
- blank=True,
1234
- on_delete=django.db.models.deletion.CASCADE,
1235
- related_name="+",
1236
- to="lamindb.artifact",
1126
+ "external",
1127
+ lamindb.base.fields.BooleanField(
1128
+ blank=True, db_index=True, default=True
1237
1129
  ),
1238
1130
  ),
1239
1131
  (
1240
- "paramvalue",
1132
+ "branch",
1241
1133
  lamindb.base.fields.ForeignKey(
1242
1134
  blank=True,
1135
+ db_column="_branch_code",
1136
+ db_default=1,
1137
+ default=1,
1243
1138
  on_delete=django.db.models.deletion.PROTECT,
1244
- related_name="+",
1245
- to="lamindb.paramvalue",
1139
+ to="lamindb.branch",
1246
1140
  ),
1247
1141
  ),
1248
1142
  ],
1249
- bases=(lamindb.models.record.LinkORM, models.Model),
1250
- ),
1251
- migrations.AddField(
1252
- model_name="artifact",
1253
- name="_param_values",
1254
- field=models.ManyToManyField(
1255
- related_name="artifacts",
1256
- through="lamindb.ArtifactParamValue",
1257
- to="lamindb.paramvalue",
1143
+ options={
1144
+ "abstract": False,
1145
+ },
1146
+ bases=(
1147
+ lamindb.models.can_curate.CanCurate,
1148
+ models.Model,
1149
+ lamindb.models.sqlrecord.ValidateFields,
1258
1150
  ),
1259
1151
  ),
1260
1152
  migrations.CreateModel(
@@ -1286,15 +1178,11 @@ class Migration(migrations.Migration):
1286
1178
  ),
1287
1179
  ),
1288
1180
  ],
1289
- bases=(lamindb.models.record.LinkORM, models.Model),
1181
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
1290
1182
  ),
1291
1183
  migrations.CreateModel(
1292
1184
  name="Project",
1293
1185
  fields=[
1294
- (
1295
- "_branch_code",
1296
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
1297
- ),
1298
1186
  (
1299
1187
  "_aux",
1300
1188
  lamindb.base.fields.JSONField(
@@ -1325,7 +1213,7 @@ class Migration(migrations.Migration):
1325
1213
  lamindb.base.fields.CharField(
1326
1214
  blank=True,
1327
1215
  db_index=True,
1328
- default=lamindb.base.ids.base62_12,
1216
+ default=lamindb.base.uids.base62_12,
1329
1217
  editable=False,
1330
1218
  max_length=12,
1331
1219
  unique=True,
@@ -1377,8 +1265,19 @@ class Migration(migrations.Migration):
1377
1265
  ),
1378
1266
  ),
1379
1267
  (
1380
- "collections",
1381
- models.ManyToManyField(
1268
+ "branch",
1269
+ lamindb.base.fields.ForeignKey(
1270
+ blank=True,
1271
+ db_column="_branch_code",
1272
+ db_default=1,
1273
+ default=1,
1274
+ on_delete=django.db.models.deletion.PROTECT,
1275
+ to="lamindb.branch",
1276
+ ),
1277
+ ),
1278
+ (
1279
+ "collections",
1280
+ models.ManyToManyField(
1382
1281
  related_name="projects",
1383
1282
  through="lamindb.CollectionProject",
1384
1283
  to="lamindb.collection",
@@ -1418,7 +1317,7 @@ class Migration(migrations.Migration):
1418
1317
  blank=True,
1419
1318
  null=True,
1420
1319
  on_delete=django.db.models.deletion.PROTECT,
1421
- related_name="records",
1320
+ related_name="projects",
1422
1321
  to="lamindb.project",
1423
1322
  ),
1424
1323
  ),
@@ -1429,7 +1328,7 @@ class Migration(migrations.Migration):
1429
1328
  bases=(
1430
1329
  lamindb.models.can_curate.CanCurate,
1431
1330
  models.Model,
1432
- lamindb.models.record.ValidateFields,
1331
+ lamindb.models.sqlrecord.ValidateFields,
1433
1332
  ),
1434
1333
  ),
1435
1334
  migrations.AddField(
@@ -1473,12 +1372,261 @@ class Migration(migrations.Migration):
1473
1372
  ),
1474
1373
  ),
1475
1374
  migrations.CreateModel(
1476
- name="Reference",
1375
+ name="Record",
1376
+ fields=[
1377
+ (
1378
+ "_aux",
1379
+ lamindb.base.fields.JSONField(
1380
+ blank=True, db_default=None, default=None, null=True
1381
+ ),
1382
+ ),
1383
+ (
1384
+ "created_at",
1385
+ lamindb.base.fields.DateTimeField(
1386
+ blank=True,
1387
+ db_default=django.db.models.functions.datetime.Now(),
1388
+ db_index=True,
1389
+ editable=False,
1390
+ ),
1391
+ ),
1392
+ (
1393
+ "updated_at",
1394
+ lamindb.base.fields.DateTimeField(
1395
+ blank=True,
1396
+ db_default=django.db.models.functions.datetime.Now(),
1397
+ db_index=True,
1398
+ editable=False,
1399
+ ),
1400
+ ),
1401
+ ("id", models.AutoField(primary_key=True, serialize=False)),
1402
+ (
1403
+ "uid",
1404
+ lamindb.base.fields.CharField(
1405
+ blank=True,
1406
+ db_index=True,
1407
+ default=lamindb.base.uids.base62_16,
1408
+ editable=False,
1409
+ max_length=16,
1410
+ unique=True,
1411
+ ),
1412
+ ),
1413
+ (
1414
+ "name",
1415
+ lamindb.base.fields.CharField(
1416
+ blank=True,
1417
+ db_index=True,
1418
+ default=None,
1419
+ max_length=150,
1420
+ null=True,
1421
+ ),
1422
+ ),
1423
+ (
1424
+ "is_type",
1425
+ lamindb.base.fields.BooleanField(
1426
+ blank=True, db_index=True, default=False, null=True
1427
+ ),
1428
+ ),
1429
+ (
1430
+ "description",
1431
+ lamindb.base.fields.CharField(
1432
+ blank=True, default=None, max_length=255, null=True
1433
+ ),
1434
+ ),
1435
+ (
1436
+ "branch",
1437
+ lamindb.base.fields.ForeignKey(
1438
+ blank=True,
1439
+ db_column="_branch_code",
1440
+ db_default=1,
1441
+ default=1,
1442
+ on_delete=django.db.models.deletion.PROTECT,
1443
+ to="lamindb.branch",
1444
+ ),
1445
+ ),
1446
+ (
1447
+ "type",
1448
+ lamindb.base.fields.ForeignKey(
1449
+ blank=True,
1450
+ null=True,
1451
+ on_delete=django.db.models.deletion.PROTECT,
1452
+ related_name="records",
1453
+ to="lamindb.record",
1454
+ ),
1455
+ ),
1456
+ ],
1457
+ options={
1458
+ "abstract": False,
1459
+ },
1460
+ bases=(lamindb.models.can_curate.CanCurate, models.Model),
1461
+ ),
1462
+ migrations.CreateModel(
1463
+ name="RecordArtifact",
1464
+ fields=[
1465
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
1466
+ (
1467
+ "feature",
1468
+ lamindb.base.fields.ForeignKey(
1469
+ blank=True,
1470
+ on_delete=django.db.models.deletion.CASCADE,
1471
+ related_name="links_recordartifact",
1472
+ to="lamindb.feature",
1473
+ ),
1474
+ ),
1475
+ (
1476
+ "record",
1477
+ lamindb.base.fields.ForeignKey(
1478
+ blank=True,
1479
+ on_delete=django.db.models.deletion.CASCADE,
1480
+ related_name="values_artifact",
1481
+ to="lamindb.record",
1482
+ ),
1483
+ ),
1484
+ (
1485
+ "value",
1486
+ lamindb.base.fields.ForeignKey(
1487
+ blank=True,
1488
+ on_delete=django.db.models.deletion.PROTECT,
1489
+ related_name="links_record",
1490
+ to="lamindb.artifact",
1491
+ ),
1492
+ ),
1493
+ ],
1494
+ options={
1495
+ "unique_together": {("record", "feature", "value")},
1496
+ },
1497
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
1498
+ ),
1499
+ migrations.AddField(
1500
+ model_name="record",
1501
+ name="artifacts",
1502
+ field=models.ManyToManyField(
1503
+ related_name="records",
1504
+ through="lamindb.RecordArtifact",
1505
+ to="lamindb.artifact",
1506
+ ),
1507
+ ),
1508
+ migrations.CreateModel(
1509
+ name="RecordProject",
1510
+ fields=[
1511
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
1512
+ (
1513
+ "feature",
1514
+ lamindb.base.fields.ForeignKey(
1515
+ blank=True,
1516
+ on_delete=django.db.models.deletion.CASCADE,
1517
+ related_name="links_recordproject",
1518
+ to="lamindb.feature",
1519
+ ),
1520
+ ),
1521
+ (
1522
+ "record",
1523
+ lamindb.base.fields.ForeignKey(
1524
+ blank=True,
1525
+ on_delete=django.db.models.deletion.CASCADE,
1526
+ related_name="values_project",
1527
+ to="lamindb.record",
1528
+ ),
1529
+ ),
1530
+ (
1531
+ "value",
1532
+ lamindb.base.fields.ForeignKey(
1533
+ blank=True,
1534
+ on_delete=django.db.models.deletion.PROTECT,
1535
+ related_name="links_record",
1536
+ to="lamindb.project",
1537
+ ),
1538
+ ),
1539
+ ],
1540
+ options={
1541
+ "unique_together": {("record", "feature")},
1542
+ },
1543
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
1544
+ ),
1545
+ migrations.AddField(
1546
+ model_name="project",
1547
+ name="records",
1548
+ field=models.ManyToManyField(
1549
+ related_name="projects",
1550
+ through="lamindb.RecordProject",
1551
+ to="lamindb.record",
1552
+ ),
1553
+ ),
1554
+ migrations.CreateModel(
1555
+ name="RecordRecord",
1477
1556
  fields=[
1478
1557
  (
1479
- "_branch_code",
1480
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
1558
+ "_aux",
1559
+ lamindb.base.fields.JSONField(
1560
+ blank=True, db_default=None, default=None, null=True
1561
+ ),
1562
+ ),
1563
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
1564
+ (
1565
+ "branch",
1566
+ lamindb.base.fields.ForeignKey(
1567
+ blank=True,
1568
+ db_column="_branch_code",
1569
+ db_default=1,
1570
+ default=1,
1571
+ on_delete=django.db.models.deletion.PROTECT,
1572
+ to="lamindb.branch",
1573
+ ),
1574
+ ),
1575
+ (
1576
+ "feature",
1577
+ lamindb.base.fields.ForeignKey(
1578
+ blank=True,
1579
+ on_delete=django.db.models.deletion.CASCADE,
1580
+ related_name="links_recordrecord",
1581
+ to="lamindb.feature",
1582
+ ),
1583
+ ),
1584
+ (
1585
+ "record",
1586
+ lamindb.base.fields.ForeignKey(
1587
+ blank=True,
1588
+ on_delete=django.db.models.deletion.CASCADE,
1589
+ related_name="values_record",
1590
+ to="lamindb.record",
1591
+ ),
1592
+ ),
1593
+ (
1594
+ "value",
1595
+ lamindb.base.fields.ForeignKey(
1596
+ blank=True,
1597
+ on_delete=django.db.models.deletion.PROTECT,
1598
+ related_name="links_record",
1599
+ to="lamindb.record",
1600
+ ),
1601
+ ),
1602
+ (
1603
+ "space",
1604
+ lamindb.base.fields.ForeignKey(
1605
+ blank=True,
1606
+ db_default=1,
1607
+ default=1,
1608
+ on_delete=django.db.models.deletion.PROTECT,
1609
+ to="lamindb.space",
1610
+ ),
1481
1611
  ),
1612
+ ],
1613
+ options={
1614
+ "unique_together": {("record", "feature")},
1615
+ },
1616
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
1617
+ ),
1618
+ migrations.AddField(
1619
+ model_name="record",
1620
+ name="components",
1621
+ field=models.ManyToManyField(
1622
+ related_name="composites",
1623
+ through="lamindb.RecordRecord",
1624
+ to="lamindb.record",
1625
+ ),
1626
+ ),
1627
+ migrations.CreateModel(
1628
+ name="Reference",
1629
+ fields=[
1482
1630
  (
1483
1631
  "_aux",
1484
1632
  lamindb.base.fields.JSONField(
@@ -1509,7 +1657,7 @@ class Migration(migrations.Migration):
1509
1657
  lamindb.base.fields.CharField(
1510
1658
  blank=True,
1511
1659
  db_index=True,
1512
- default=lamindb.base.ids.base62_12,
1660
+ default=lamindb.base.uids.base62_12,
1513
1661
  editable=False,
1514
1662
  max_length=12,
1515
1663
  unique=True,
@@ -1521,6 +1669,12 @@ class Migration(migrations.Migration):
1521
1669
  blank=True, db_index=True, default=None, max_length=255
1522
1670
  ),
1523
1671
  ),
1672
+ (
1673
+ "is_type",
1674
+ lamindb.base.fields.BooleanField(
1675
+ blank=True, db_index=True, default=False, null=True
1676
+ ),
1677
+ ),
1524
1678
  (
1525
1679
  "abbr",
1526
1680
  lamindb.base.fields.CharField(
@@ -1531,12 +1685,6 @@ class Migration(migrations.Migration):
1531
1685
  null=True,
1532
1686
  ),
1533
1687
  ),
1534
- (
1535
- "is_type",
1536
- lamindb.base.fields.BooleanField(
1537
- blank=True, db_index=True, default=False, null=True
1538
- ),
1539
- ),
1540
1688
  ("url", lamindb.base.fields.URLField(blank=True, null=True)),
1541
1689
  (
1542
1690
  "pubmed_id",
@@ -1592,6 +1740,17 @@ class Migration(migrations.Migration):
1592
1740
  related_name="references", to="lamindb.person"
1593
1741
  ),
1594
1742
  ),
1743
+ (
1744
+ "branch",
1745
+ lamindb.base.fields.ForeignKey(
1746
+ blank=True,
1747
+ db_column="_branch_code",
1748
+ db_default=1,
1749
+ default=1,
1750
+ on_delete=django.db.models.deletion.PROTECT,
1751
+ to="lamindb.branch",
1752
+ ),
1753
+ ),
1595
1754
  (
1596
1755
  "collections",
1597
1756
  models.ManyToManyField(
@@ -1606,7 +1765,7 @@ class Migration(migrations.Migration):
1606
1765
  blank=True,
1607
1766
  null=True,
1608
1767
  on_delete=django.db.models.deletion.PROTECT,
1609
- related_name="records",
1768
+ related_name="references",
1610
1769
  to="lamindb.reference",
1611
1770
  ),
1612
1771
  ),
@@ -1617,7 +1776,7 @@ class Migration(migrations.Migration):
1617
1776
  bases=(
1618
1777
  lamindb.models.can_curate.CanCurate,
1619
1778
  models.Model,
1620
- lamindb.models.record.ValidateFields,
1779
+ lamindb.models.sqlrecord.ValidateFields,
1621
1780
  ),
1622
1781
  ),
1623
1782
  migrations.AddField(
@@ -1650,10 +1809,6 @@ class Migration(migrations.Migration):
1650
1809
  migrations.CreateModel(
1651
1810
  name="Run",
1652
1811
  fields=[
1653
- (
1654
- "_branch_code",
1655
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
1656
- ),
1657
1812
  (
1658
1813
  "_aux",
1659
1814
  lamindb.base.fields.JSONField(
@@ -1666,7 +1821,7 @@ class Migration(migrations.Migration):
1666
1821
  lamindb.base.fields.CharField(
1667
1822
  blank=True,
1668
1823
  db_index=True,
1669
- default=lamindb.base.ids.base62_20,
1824
+ default=lamindb.base.uids.base62_16,
1670
1825
  editable=False,
1671
1826
  max_length=20,
1672
1827
  unique=True,
@@ -1740,6 +1895,17 @@ class Migration(migrations.Migration):
1740
1895
  to="lamindb.artifact",
1741
1896
  ),
1742
1897
  ),
1898
+ (
1899
+ "branch",
1900
+ lamindb.base.fields.ForeignKey(
1901
+ blank=True,
1902
+ db_column="_branch_code",
1903
+ db_default=1,
1904
+ default=1,
1905
+ on_delete=django.db.models.deletion.PROTECT,
1906
+ to="lamindb.branch",
1907
+ ),
1908
+ ),
1743
1909
  (
1744
1910
  "environment",
1745
1911
  lamindb.base.fields.ForeignKey(
@@ -1790,11 +1956,48 @@ class Migration(migrations.Migration):
1790
1956
  to="lamindb.run",
1791
1957
  ),
1792
1958
  ),
1793
- migrations.AddField(
1794
- model_name="project",
1795
- name="run",
1796
- field=lamindb.base.fields.ForeignKey(
1797
- blank=True,
1959
+ migrations.CreateModel(
1960
+ name="RecordRun",
1961
+ fields=[
1962
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
1963
+ (
1964
+ "feature",
1965
+ lamindb.base.fields.ForeignKey(
1966
+ blank=True,
1967
+ on_delete=django.db.models.deletion.CASCADE,
1968
+ related_name="links_recordrun",
1969
+ to="lamindb.feature",
1970
+ ),
1971
+ ),
1972
+ (
1973
+ "record",
1974
+ lamindb.base.fields.ForeignKey(
1975
+ blank=True,
1976
+ on_delete=django.db.models.deletion.CASCADE,
1977
+ related_name="values_run",
1978
+ to="lamindb.record",
1979
+ ),
1980
+ ),
1981
+ (
1982
+ "value",
1983
+ lamindb.base.fields.ForeignKey(
1984
+ blank=True,
1985
+ on_delete=django.db.models.deletion.PROTECT,
1986
+ related_name="links_record",
1987
+ to="lamindb.run",
1988
+ ),
1989
+ ),
1990
+ ],
1991
+ options={
1992
+ "unique_together": {("record", "feature")},
1993
+ },
1994
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
1995
+ ),
1996
+ migrations.AddField(
1997
+ model_name="record",
1998
+ name="run",
1999
+ field=lamindb.base.fields.ForeignKey(
2000
+ blank=True,
1798
2001
  default=lamindb.models.run.current_run,
1799
2002
  null=True,
1800
2003
  on_delete=django.db.models.deletion.PROTECT,
@@ -1803,7 +2006,14 @@ class Migration(migrations.Migration):
1803
2006
  ),
1804
2007
  ),
1805
2008
  migrations.AddField(
1806
- model_name="personproject",
2009
+ model_name="record",
2010
+ name="runs",
2011
+ field=models.ManyToManyField(
2012
+ related_name="records", through="lamindb.RecordRun", to="lamindb.run"
2013
+ ),
2014
+ ),
2015
+ migrations.AddField(
2016
+ model_name="project",
1807
2017
  name="run",
1808
2018
  field=lamindb.base.fields.ForeignKey(
1809
2019
  blank=True,
@@ -1815,7 +2025,7 @@ class Migration(migrations.Migration):
1815
2025
  ),
1816
2026
  ),
1817
2027
  migrations.AddField(
1818
- model_name="person",
2028
+ model_name="personproject",
1819
2029
  name="run",
1820
2030
  field=lamindb.base.fields.ForeignKey(
1821
2031
  blank=True,
@@ -1827,7 +2037,7 @@ class Migration(migrations.Migration):
1827
2037
  ),
1828
2038
  ),
1829
2039
  migrations.AddField(
1830
- model_name="param",
2040
+ model_name="person",
1831
2041
  name="run",
1832
2042
  field=lamindb.base.fields.ForeignKey(
1833
2043
  blank=True,
@@ -1962,18 +2172,6 @@ class Migration(migrations.Migration):
1962
2172
  to="lamindb.run",
1963
2173
  ),
1964
2174
  ),
1965
- migrations.AddField(
1966
- model_name="artifactparamvalue",
1967
- name="run",
1968
- field=lamindb.base.fields.ForeignKey(
1969
- blank=True,
1970
- default=lamindb.models.run.current_run,
1971
- null=True,
1972
- on_delete=django.db.models.deletion.PROTECT,
1973
- related_name="+",
1974
- to="lamindb.run",
1975
- ),
1976
- ),
1977
2175
  migrations.AddField(
1978
2176
  model_name="artifactfeaturevalue",
1979
2177
  name="run",
@@ -2016,7 +2214,7 @@ class Migration(migrations.Migration):
2016
2214
  ),
2017
2215
  ),
2018
2216
  migrations.CreateModel(
2019
- name="RunParamValue",
2217
+ name="RunFeatureValue",
2020
2218
  fields=[
2021
2219
  ("id", models.BigAutoField(primary_key=True, serialize=False)),
2022
2220
  (
@@ -2029,12 +2227,12 @@ class Migration(migrations.Migration):
2029
2227
  ),
2030
2228
  ),
2031
2229
  (
2032
- "paramvalue",
2230
+ "featurevalue",
2033
2231
  lamindb.base.fields.ForeignKey(
2034
2232
  blank=True,
2035
2233
  on_delete=django.db.models.deletion.PROTECT,
2036
- related_name="+",
2037
- to="lamindb.paramvalue",
2234
+ related_name="links_run",
2235
+ to="lamindb.featurevalue",
2038
2236
  ),
2039
2237
  ),
2040
2238
  (
@@ -2042,7 +2240,7 @@ class Migration(migrations.Migration):
2042
2240
  lamindb.base.fields.ForeignKey(
2043
2241
  blank=True,
2044
2242
  on_delete=django.db.models.deletion.CASCADE,
2045
- related_name="+",
2243
+ related_name="links_featurevalue",
2046
2244
  to="lamindb.run",
2047
2245
  ),
2048
2246
  ),
@@ -2058,17 +2256,17 @@ class Migration(migrations.Migration):
2058
2256
  ),
2059
2257
  ],
2060
2258
  options={
2061
- "unique_together": {("run", "paramvalue")},
2259
+ "unique_together": {("run", "featurevalue")},
2062
2260
  },
2063
- bases=(models.Model, lamindb.models.record.LinkORM),
2261
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
2064
2262
  ),
2065
2263
  migrations.AddField(
2066
2264
  model_name="run",
2067
- name="_param_values",
2265
+ name="_feature_values",
2068
2266
  field=models.ManyToManyField(
2069
2267
  related_name="runs",
2070
- through="lamindb.RunParamValue",
2071
- to="lamindb.paramvalue",
2268
+ through="lamindb.RunFeatureValue",
2269
+ to="lamindb.featurevalue",
2072
2270
  ),
2073
2271
  ),
2074
2272
  migrations.CreateModel(
@@ -2117,7 +2315,7 @@ class Migration(migrations.Migration):
2117
2315
  options={
2118
2316
  "unique_together": {("run", "project")},
2119
2317
  },
2120
- bases=(models.Model, lamindb.models.record.LinkORM),
2318
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
2121
2319
  ),
2122
2320
  migrations.AddField(
2123
2321
  model_name="project",
@@ -2129,10 +2327,6 @@ class Migration(migrations.Migration):
2129
2327
  migrations.CreateModel(
2130
2328
  name="Schema",
2131
2329
  fields=[
2132
- (
2133
- "_branch_code",
2134
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
2135
- ),
2136
2330
  (
2137
2331
  "_aux",
2138
2332
  lamindb.base.fields.JSONField(
@@ -2182,13 +2376,9 @@ class Migration(migrations.Migration):
2182
2376
  ),
2183
2377
  ("n", lamindb.base.fields.IntegerField(blank=True)),
2184
2378
  (
2185
- "dtype",
2186
- lamindb.base.fields.CharField(
2187
- blank=True,
2188
- default=None,
2189
- editable=False,
2190
- max_length=64,
2191
- null=True,
2379
+ "is_type",
2380
+ lamindb.base.fields.BooleanField(
2381
+ blank=True, db_index=True, default=False, null=True
2192
2382
  ),
2193
2383
  ),
2194
2384
  (
@@ -2203,17 +2393,21 @@ class Migration(migrations.Migration):
2203
2393
  ),
2204
2394
  ),
2205
2395
  (
2206
- "is_type",
2207
- lamindb.base.fields.BooleanField(
2208
- blank=True, db_index=True, default=False, null=True
2396
+ "otype",
2397
+ lamindb.base.fields.CharField(
2398
+ blank=True,
2399
+ db_index=True,
2400
+ default=None,
2401
+ max_length=64,
2402
+ null=True,
2209
2403
  ),
2210
2404
  ),
2211
2405
  (
2212
- "otype",
2406
+ "dtype",
2213
2407
  lamindb.base.fields.CharField(
2214
2408
  blank=True,
2215
- db_index=True,
2216
2409
  default=None,
2410
+ editable=False,
2217
2411
  max_length=64,
2218
2412
  null=True,
2219
2413
  ),
@@ -2263,6 +2457,17 @@ class Migration(migrations.Migration):
2263
2457
  null=True,
2264
2458
  ),
2265
2459
  ),
2460
+ (
2461
+ "branch",
2462
+ lamindb.base.fields.ForeignKey(
2463
+ blank=True,
2464
+ db_column="_branch_code",
2465
+ db_default=1,
2466
+ default=1,
2467
+ on_delete=django.db.models.deletion.PROTECT,
2468
+ to="lamindb.branch",
2469
+ ),
2470
+ ),
2266
2471
  (
2267
2472
  "composite",
2268
2473
  lamindb.base.fields.ForeignKey(
@@ -2291,7 +2496,7 @@ class Migration(migrations.Migration):
2291
2496
  blank=True,
2292
2497
  null=True,
2293
2498
  on_delete=django.db.models.deletion.PROTECT,
2294
- related_name="records",
2499
+ related_name="schemas",
2295
2500
  to="lamindb.schema",
2296
2501
  ),
2297
2502
  ),
@@ -2378,7 +2583,10 @@ class Migration(migrations.Migration):
2378
2583
  ),
2379
2584
  ),
2380
2585
  ],
2381
- bases=(lamindb.models.record.LinkORM, models.Model),
2586
+ options={
2587
+ "unique_together": {("artifact", "schema"), ("artifact", "slot")},
2588
+ },
2589
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
2382
2590
  ),
2383
2591
  migrations.AddField(
2384
2592
  model_name="artifact",
@@ -2462,9 +2670,12 @@ class Migration(migrations.Migration):
2462
2670
  ),
2463
2671
  ],
2464
2672
  options={
2465
- "unique_together": {("composite", "component"), ("composite", "slot")},
2673
+ "unique_together": {
2674
+ ("composite", "slot"),
2675
+ ("composite", "slot", "component"),
2676
+ },
2466
2677
  },
2467
- bases=(lamindb.models.record.LinkORM, models.Model),
2678
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
2468
2679
  ),
2469
2680
  migrations.AddField(
2470
2681
  model_name="schema",
@@ -2501,7 +2712,7 @@ class Migration(migrations.Migration):
2501
2712
  options={
2502
2713
  "unique_together": {("schema", "feature")},
2503
2714
  },
2504
- bases=(models.Model, lamindb.models.record.LinkORM),
2715
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
2505
2716
  ),
2506
2717
  migrations.AddField(
2507
2718
  model_name="feature",
@@ -2512,43 +2723,6 @@ class Migration(migrations.Migration):
2512
2723
  to="lamindb.schema",
2513
2724
  ),
2514
2725
  ),
2515
- migrations.CreateModel(
2516
- name="SchemaParam",
2517
- fields=[
2518
- ("id", models.BigAutoField(primary_key=True, serialize=False)),
2519
- (
2520
- "param",
2521
- lamindb.base.fields.ForeignKey(
2522
- blank=True,
2523
- on_delete=django.db.models.deletion.PROTECT,
2524
- related_name="+",
2525
- to="lamindb.param",
2526
- ),
2527
- ),
2528
- (
2529
- "schema",
2530
- lamindb.base.fields.ForeignKey(
2531
- blank=True,
2532
- on_delete=django.db.models.deletion.CASCADE,
2533
- related_name="+",
2534
- to="lamindb.schema",
2535
- ),
2536
- ),
2537
- ],
2538
- options={
2539
- "unique_together": {("schema", "param")},
2540
- },
2541
- bases=(models.Model, lamindb.models.record.LinkORM),
2542
- ),
2543
- migrations.AddField(
2544
- model_name="param",
2545
- name="schemas",
2546
- field=models.ManyToManyField(
2547
- related_name="params",
2548
- through="lamindb.SchemaParam",
2549
- to="lamindb.schema",
2550
- ),
2551
- ),
2552
2726
  migrations.CreateModel(
2553
2727
  name="SchemaProject",
2554
2728
  fields=[
@@ -2606,7 +2780,7 @@ class Migration(migrations.Migration):
2606
2780
  options={
2607
2781
  "unique_together": {("schema", "project")},
2608
2782
  },
2609
- bases=(lamindb.models.record.LinkORM, models.Model),
2783
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
2610
2784
  ),
2611
2785
  migrations.AddField(
2612
2786
  model_name="project",
@@ -2617,123 +2791,9 @@ class Migration(migrations.Migration):
2617
2791
  to="lamindb.schema",
2618
2792
  ),
2619
2793
  ),
2620
- migrations.AddField(
2621
- model_name="schema",
2622
- name="space",
2623
- field=lamindb.base.fields.ForeignKey(
2624
- blank=True,
2625
- db_default=1,
2626
- default=1,
2627
- on_delete=django.db.models.deletion.PROTECT,
2628
- to="lamindb.space",
2629
- ),
2630
- ),
2631
- migrations.AddField(
2632
- model_name="run",
2633
- name="space",
2634
- field=lamindb.base.fields.ForeignKey(
2635
- blank=True,
2636
- db_default=1,
2637
- default=1,
2638
- on_delete=django.db.models.deletion.PROTECT,
2639
- to="lamindb.space",
2640
- ),
2641
- ),
2642
- migrations.AddField(
2643
- model_name="reference",
2644
- name="space",
2645
- field=lamindb.base.fields.ForeignKey(
2646
- blank=True,
2647
- db_default=1,
2648
- default=1,
2649
- on_delete=django.db.models.deletion.PROTECT,
2650
- to="lamindb.space",
2651
- ),
2652
- ),
2653
- migrations.AddField(
2654
- model_name="project",
2655
- name="space",
2656
- field=lamindb.base.fields.ForeignKey(
2657
- blank=True,
2658
- db_default=1,
2659
- default=1,
2660
- on_delete=django.db.models.deletion.PROTECT,
2661
- to="lamindb.space",
2662
- ),
2663
- ),
2664
- migrations.AddField(
2665
- model_name="person",
2666
- name="space",
2667
- field=lamindb.base.fields.ForeignKey(
2668
- blank=True,
2669
- db_default=1,
2670
- default=1,
2671
- on_delete=django.db.models.deletion.PROTECT,
2672
- to="lamindb.space",
2673
- ),
2674
- ),
2675
- migrations.AddField(
2676
- model_name="param",
2677
- name="space",
2678
- field=lamindb.base.fields.ForeignKey(
2679
- blank=True,
2680
- db_default=1,
2681
- default=1,
2682
- on_delete=django.db.models.deletion.PROTECT,
2683
- to="lamindb.space",
2684
- ),
2685
- ),
2686
- migrations.AddField(
2687
- model_name="featurevalue",
2688
- name="space",
2689
- field=lamindb.base.fields.ForeignKey(
2690
- blank=True,
2691
- db_default=1,
2692
- default=1,
2693
- on_delete=django.db.models.deletion.PROTECT,
2694
- to="lamindb.space",
2695
- ),
2696
- ),
2697
- migrations.AddField(
2698
- model_name="feature",
2699
- name="space",
2700
- field=lamindb.base.fields.ForeignKey(
2701
- blank=True,
2702
- db_default=1,
2703
- default=1,
2704
- on_delete=django.db.models.deletion.PROTECT,
2705
- to="lamindb.space",
2706
- ),
2707
- ),
2708
- migrations.AddField(
2709
- model_name="collection",
2710
- name="space",
2711
- field=lamindb.base.fields.ForeignKey(
2712
- blank=True,
2713
- db_default=1,
2714
- default=1,
2715
- on_delete=django.db.models.deletion.PROTECT,
2716
- to="lamindb.space",
2717
- ),
2718
- ),
2719
- migrations.AddField(
2720
- model_name="artifact",
2721
- name="space",
2722
- field=lamindb.base.fields.ForeignKey(
2723
- blank=True,
2724
- db_default=1,
2725
- default=1,
2726
- on_delete=django.db.models.deletion.PROTECT,
2727
- to="lamindb.space",
2728
- ),
2729
- ),
2730
2794
  migrations.CreateModel(
2731
- name="Storage",
2795
+ name="Sheet",
2732
2796
  fields=[
2733
- (
2734
- "_branch_code",
2735
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
2736
- ),
2737
2797
  (
2738
2798
  "_aux",
2739
2799
  lamindb.base.fields.JSONField(
@@ -2764,20 +2824,16 @@ class Migration(migrations.Migration):
2764
2824
  lamindb.base.fields.CharField(
2765
2825
  blank=True,
2766
2826
  db_index=True,
2767
- default=lamindb.base.ids.base62_12,
2827
+ default=lamindb.base.uids.base62_12,
2768
2828
  editable=False,
2769
2829
  max_length=12,
2770
2830
  unique=True,
2771
2831
  ),
2772
2832
  ),
2773
2833
  (
2774
- "root",
2834
+ "name",
2775
2835
  lamindb.base.fields.CharField(
2776
- blank=True,
2777
- db_index=True,
2778
- default=None,
2779
- max_length=255,
2780
- unique=True,
2836
+ blank=True, db_index=True, default=None, max_length=255
2781
2837
  ),
2782
2838
  ),
2783
2839
  (
@@ -2791,14 +2847,320 @@ class Migration(migrations.Migration):
2791
2847
  ),
2792
2848
  ),
2793
2849
  (
2794
- "type",
2795
- lamindb.base.fields.CharField(
2796
- blank=True, db_index=True, default=None, max_length=30
2850
+ "branch",
2851
+ lamindb.base.fields.ForeignKey(
2852
+ blank=True,
2853
+ db_column="_branch_code",
2854
+ db_default=1,
2855
+ default=1,
2856
+ on_delete=django.db.models.deletion.PROTECT,
2857
+ to="lamindb.branch",
2797
2858
  ),
2798
2859
  ),
2799
2860
  (
2800
- "region",
2801
- lamindb.base.fields.CharField(
2861
+ "run",
2862
+ lamindb.base.fields.ForeignKey(
2863
+ blank=True,
2864
+ default=lamindb.models.run.current_run,
2865
+ null=True,
2866
+ on_delete=django.db.models.deletion.PROTECT,
2867
+ related_name="+",
2868
+ to="lamindb.run",
2869
+ ),
2870
+ ),
2871
+ (
2872
+ "schema",
2873
+ lamindb.base.fields.ForeignKey(
2874
+ blank=True,
2875
+ null=True,
2876
+ on_delete=django.db.models.deletion.CASCADE,
2877
+ related_name="sheets",
2878
+ to="lamindb.schema",
2879
+ ),
2880
+ ),
2881
+ (
2882
+ "space",
2883
+ lamindb.base.fields.ForeignKey(
2884
+ blank=True,
2885
+ db_default=1,
2886
+ default=1,
2887
+ on_delete=django.db.models.deletion.PROTECT,
2888
+ to="lamindb.space",
2889
+ ),
2890
+ ),
2891
+ (
2892
+ "created_by",
2893
+ lamindb.base.fields.ForeignKey(
2894
+ blank=True,
2895
+ default=lamindb.base.users.current_user_id,
2896
+ editable=False,
2897
+ on_delete=django.db.models.deletion.PROTECT,
2898
+ related_name="+",
2899
+ to="lamindb.user",
2900
+ ),
2901
+ ),
2902
+ ],
2903
+ options={
2904
+ "abstract": False,
2905
+ },
2906
+ ),
2907
+ migrations.AddField(
2908
+ model_name="record",
2909
+ name="sheet",
2910
+ field=lamindb.base.fields.ForeignKey(
2911
+ blank=True,
2912
+ null=True,
2913
+ on_delete=django.db.models.deletion.CASCADE,
2914
+ related_name="records",
2915
+ to="lamindb.sheet",
2916
+ ),
2917
+ ),
2918
+ migrations.CreateModel(
2919
+ name="SheetProject",
2920
+ fields=[
2921
+ (
2922
+ "created_at",
2923
+ lamindb.base.fields.DateTimeField(
2924
+ blank=True,
2925
+ db_default=django.db.models.functions.datetime.Now(),
2926
+ db_index=True,
2927
+ editable=False,
2928
+ ),
2929
+ ),
2930
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
2931
+ (
2932
+ "project",
2933
+ lamindb.base.fields.ForeignKey(
2934
+ blank=True,
2935
+ on_delete=django.db.models.deletion.PROTECT,
2936
+ related_name="links_sheet",
2937
+ to="lamindb.project",
2938
+ ),
2939
+ ),
2940
+ (
2941
+ "run",
2942
+ lamindb.base.fields.ForeignKey(
2943
+ blank=True,
2944
+ default=lamindb.models.run.current_run,
2945
+ null=True,
2946
+ on_delete=django.db.models.deletion.PROTECT,
2947
+ related_name="+",
2948
+ to="lamindb.run",
2949
+ ),
2950
+ ),
2951
+ (
2952
+ "sheet",
2953
+ lamindb.base.fields.ForeignKey(
2954
+ blank=True,
2955
+ on_delete=django.db.models.deletion.CASCADE,
2956
+ related_name="links_project",
2957
+ to="lamindb.sheet",
2958
+ ),
2959
+ ),
2960
+ (
2961
+ "created_by",
2962
+ lamindb.base.fields.ForeignKey(
2963
+ blank=True,
2964
+ default=lamindb.base.users.current_user_id,
2965
+ editable=False,
2966
+ on_delete=django.db.models.deletion.PROTECT,
2967
+ related_name="+",
2968
+ to="lamindb.user",
2969
+ ),
2970
+ ),
2971
+ ],
2972
+ options={
2973
+ "unique_together": {("sheet", "project")},
2974
+ },
2975
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
2976
+ ),
2977
+ migrations.AddField(
2978
+ model_name="project",
2979
+ name="sheets",
2980
+ field=models.ManyToManyField(
2981
+ related_name="projects",
2982
+ through="lamindb.SheetProject",
2983
+ to="lamindb.sheet",
2984
+ ),
2985
+ ),
2986
+ migrations.AddField(
2987
+ model_name="schema",
2988
+ name="space",
2989
+ field=lamindb.base.fields.ForeignKey(
2990
+ blank=True,
2991
+ db_default=1,
2992
+ default=1,
2993
+ on_delete=django.db.models.deletion.PROTECT,
2994
+ to="lamindb.space",
2995
+ ),
2996
+ ),
2997
+ migrations.AddField(
2998
+ model_name="run",
2999
+ name="space",
3000
+ field=lamindb.base.fields.ForeignKey(
3001
+ blank=True,
3002
+ db_default=1,
3003
+ default=1,
3004
+ on_delete=django.db.models.deletion.PROTECT,
3005
+ to="lamindb.space",
3006
+ ),
3007
+ ),
3008
+ migrations.AddField(
3009
+ model_name="reference",
3010
+ name="space",
3011
+ field=lamindb.base.fields.ForeignKey(
3012
+ blank=True,
3013
+ db_default=1,
3014
+ default=1,
3015
+ on_delete=django.db.models.deletion.PROTECT,
3016
+ to="lamindb.space",
3017
+ ),
3018
+ ),
3019
+ migrations.AddField(
3020
+ model_name="record",
3021
+ name="space",
3022
+ field=lamindb.base.fields.ForeignKey(
3023
+ blank=True,
3024
+ db_default=1,
3025
+ default=1,
3026
+ on_delete=django.db.models.deletion.PROTECT,
3027
+ to="lamindb.space",
3028
+ ),
3029
+ ),
3030
+ migrations.AddField(
3031
+ model_name="project",
3032
+ name="space",
3033
+ field=lamindb.base.fields.ForeignKey(
3034
+ blank=True,
3035
+ db_default=1,
3036
+ default=1,
3037
+ on_delete=django.db.models.deletion.PROTECT,
3038
+ to="lamindb.space",
3039
+ ),
3040
+ ),
3041
+ migrations.AddField(
3042
+ model_name="person",
3043
+ name="space",
3044
+ field=lamindb.base.fields.ForeignKey(
3045
+ blank=True,
3046
+ db_default=1,
3047
+ default=1,
3048
+ on_delete=django.db.models.deletion.PROTECT,
3049
+ to="lamindb.space",
3050
+ ),
3051
+ ),
3052
+ migrations.AddField(
3053
+ model_name="featurevalue",
3054
+ name="space",
3055
+ field=lamindb.base.fields.ForeignKey(
3056
+ blank=True,
3057
+ db_default=1,
3058
+ default=1,
3059
+ on_delete=django.db.models.deletion.PROTECT,
3060
+ to="lamindb.space",
3061
+ ),
3062
+ ),
3063
+ migrations.AddField(
3064
+ model_name="feature",
3065
+ name="space",
3066
+ field=lamindb.base.fields.ForeignKey(
3067
+ blank=True,
3068
+ db_default=1,
3069
+ default=1,
3070
+ on_delete=django.db.models.deletion.PROTECT,
3071
+ to="lamindb.space",
3072
+ ),
3073
+ ),
3074
+ migrations.AddField(
3075
+ model_name="collection",
3076
+ name="space",
3077
+ field=lamindb.base.fields.ForeignKey(
3078
+ blank=True,
3079
+ db_default=1,
3080
+ default=1,
3081
+ on_delete=django.db.models.deletion.PROTECT,
3082
+ to="lamindb.space",
3083
+ ),
3084
+ ),
3085
+ migrations.AddField(
3086
+ model_name="artifact",
3087
+ name="space",
3088
+ field=lamindb.base.fields.ForeignKey(
3089
+ blank=True,
3090
+ db_default=1,
3091
+ default=1,
3092
+ on_delete=django.db.models.deletion.PROTECT,
3093
+ to="lamindb.space",
3094
+ ),
3095
+ ),
3096
+ migrations.CreateModel(
3097
+ name="Storage",
3098
+ fields=[
3099
+ (
3100
+ "_aux",
3101
+ lamindb.base.fields.JSONField(
3102
+ blank=True, db_default=None, default=None, null=True
3103
+ ),
3104
+ ),
3105
+ (
3106
+ "created_at",
3107
+ lamindb.base.fields.DateTimeField(
3108
+ blank=True,
3109
+ db_default=django.db.models.functions.datetime.Now(),
3110
+ db_index=True,
3111
+ editable=False,
3112
+ ),
3113
+ ),
3114
+ (
3115
+ "updated_at",
3116
+ lamindb.base.fields.DateTimeField(
3117
+ blank=True,
3118
+ db_default=django.db.models.functions.datetime.Now(),
3119
+ db_index=True,
3120
+ editable=False,
3121
+ ),
3122
+ ),
3123
+ ("id", models.AutoField(primary_key=True, serialize=False)),
3124
+ (
3125
+ "uid",
3126
+ lamindb.base.fields.CharField(
3127
+ blank=True,
3128
+ db_index=True,
3129
+ default=lamindb.base.uids.base62_12,
3130
+ editable=False,
3131
+ max_length=12,
3132
+ unique=True,
3133
+ ),
3134
+ ),
3135
+ (
3136
+ "root",
3137
+ lamindb.base.fields.CharField(
3138
+ blank=True,
3139
+ db_index=True,
3140
+ default=None,
3141
+ max_length=255,
3142
+ unique=True,
3143
+ ),
3144
+ ),
3145
+ (
3146
+ "description",
3147
+ lamindb.base.fields.CharField(
3148
+ blank=True,
3149
+ db_index=True,
3150
+ default=None,
3151
+ max_length=255,
3152
+ null=True,
3153
+ ),
3154
+ ),
3155
+ (
3156
+ "type",
3157
+ lamindb.base.fields.CharField(
3158
+ blank=True, db_index=True, default=None, max_length=30
3159
+ ),
3160
+ ),
3161
+ (
3162
+ "region",
3163
+ lamindb.base.fields.CharField(
2802
3164
  blank=True,
2803
3165
  db_index=True,
2804
3166
  default=None,
@@ -2816,6 +3178,17 @@ class Migration(migrations.Migration):
2816
3178
  null=True,
2817
3179
  ),
2818
3180
  ),
3181
+ (
3182
+ "branch",
3183
+ lamindb.base.fields.ForeignKey(
3184
+ blank=True,
3185
+ db_column="_branch_code",
3186
+ db_default=1,
3187
+ default=1,
3188
+ on_delete=django.db.models.deletion.PROTECT,
3189
+ to="lamindb.branch",
3190
+ ),
3191
+ ),
2819
3192
  (
2820
3193
  "run",
2821
3194
  lamindb.base.fields.ForeignKey(
@@ -2883,10 +3256,6 @@ class Migration(migrations.Migration):
2883
3256
  blank=True, db_index=True, default=True
2884
3257
  ),
2885
3258
  ),
2886
- (
2887
- "_branch_code",
2888
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
2889
- ),
2890
3259
  (
2891
3260
  "_aux",
2892
3261
  lamindb.base.fields.JSONField(
@@ -2943,7 +3312,6 @@ class Migration(migrations.Migration):
2943
3312
  default=None,
2944
3313
  max_length=22,
2945
3314
  null=True,
2946
- unique=True,
2947
3315
  ),
2948
3316
  ),
2949
3317
  (
@@ -2995,6 +3363,17 @@ class Migration(migrations.Migration):
2995
3363
  to="lamindb.transform",
2996
3364
  ),
2997
3365
  ),
3366
+ (
3367
+ "branch",
3368
+ lamindb.base.fields.ForeignKey(
3369
+ blank=True,
3370
+ db_column="_branch_code",
3371
+ db_default=1,
3372
+ default=1,
3373
+ on_delete=django.db.models.deletion.PROTECT,
3374
+ to="lamindb.branch",
3375
+ ),
3376
+ ),
2998
3377
  (
2999
3378
  "predecessors",
3000
3379
  models.ManyToManyField(
@@ -3083,7 +3462,7 @@ class Migration(migrations.Migration):
3083
3462
  options={
3084
3463
  "unique_together": {("transform", "project")},
3085
3464
  },
3086
- bases=(lamindb.models.record.LinkORM, models.Model),
3465
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
3087
3466
  ),
3088
3467
  migrations.AddField(
3089
3468
  model_name="project",
@@ -3151,7 +3530,7 @@ class Migration(migrations.Migration):
3151
3530
  options={
3152
3531
  "unique_together": {("transform", "reference")},
3153
3532
  },
3154
- bases=(lamindb.models.record.LinkORM, models.Model),
3533
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
3155
3534
  ),
3156
3535
  migrations.AddField(
3157
3536
  model_name="reference",
@@ -3165,10 +3544,6 @@ class Migration(migrations.Migration):
3165
3544
  migrations.CreateModel(
3166
3545
  name="ULabel",
3167
3546
  fields=[
3168
- (
3169
- "_branch_code",
3170
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
3171
- ),
3172
3547
  (
3173
3548
  "_aux",
3174
3549
  lamindb.base.fields.JSONField(
@@ -3199,7 +3574,7 @@ class Migration(migrations.Migration):
3199
3574
  lamindb.base.fields.CharField(
3200
3575
  blank=True,
3201
3576
  db_index=True,
3202
- default=lamindb.base.ids.base62_8,
3577
+ default=lamindb.base.uids.base62_8,
3203
3578
  editable=False,
3204
3579
  max_length=8,
3205
3580
  unique=True,
@@ -3247,6 +3622,17 @@ class Migration(migrations.Migration):
3247
3622
  null=True,
3248
3623
  ),
3249
3624
  ),
3625
+ (
3626
+ "branch",
3627
+ lamindb.base.fields.ForeignKey(
3628
+ blank=True,
3629
+ db_column="_branch_code",
3630
+ db_default=1,
3631
+ default=1,
3632
+ on_delete=django.db.models.deletion.PROTECT,
3633
+ to="lamindb.branch",
3634
+ ),
3635
+ ),
3250
3636
  (
3251
3637
  "parents",
3252
3638
  models.ManyToManyField(
@@ -3280,7 +3666,7 @@ class Migration(migrations.Migration):
3280
3666
  blank=True,
3281
3667
  null=True,
3282
3668
  on_delete=django.db.models.deletion.PROTECT,
3283
- related_name="records",
3669
+ related_name="ulabels",
3284
3670
  to="lamindb.ulabel",
3285
3671
  ),
3286
3672
  ),
@@ -3362,7 +3748,7 @@ class Migration(migrations.Migration):
3362
3748
  options={
3363
3749
  "unique_together": {("transform", "ulabel")},
3364
3750
  },
3365
- bases=(lamindb.models.record.LinkORM, models.Model),
3751
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
3366
3752
  ),
3367
3753
  migrations.AddField(
3368
3754
  model_name="transform",
@@ -3418,7 +3804,7 @@ class Migration(migrations.Migration):
3418
3804
  options={
3419
3805
  "unique_together": {("run", "ulabel")},
3420
3806
  },
3421
- bases=(models.Model, lamindb.models.record.LinkORM),
3807
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
3422
3808
  ),
3423
3809
  migrations.AddField(
3424
3810
  model_name="run",
@@ -3427,6 +3813,52 @@ class Migration(migrations.Migration):
3427
3813
  related_name="runs", through="lamindb.RunULabel", to="lamindb.ulabel"
3428
3814
  ),
3429
3815
  ),
3816
+ migrations.CreateModel(
3817
+ name="RecordULabel",
3818
+ fields=[
3819
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
3820
+ (
3821
+ "feature",
3822
+ lamindb.base.fields.ForeignKey(
3823
+ blank=True,
3824
+ on_delete=django.db.models.deletion.CASCADE,
3825
+ related_name="links_recordulabel",
3826
+ to="lamindb.feature",
3827
+ ),
3828
+ ),
3829
+ (
3830
+ "record",
3831
+ lamindb.base.fields.ForeignKey(
3832
+ blank=True,
3833
+ on_delete=django.db.models.deletion.CASCADE,
3834
+ related_name="values_ulabel",
3835
+ to="lamindb.record",
3836
+ ),
3837
+ ),
3838
+ (
3839
+ "value",
3840
+ lamindb.base.fields.ForeignKey(
3841
+ blank=True,
3842
+ on_delete=django.db.models.deletion.PROTECT,
3843
+ related_name="links_record",
3844
+ to="lamindb.ulabel",
3845
+ ),
3846
+ ),
3847
+ ],
3848
+ options={
3849
+ "unique_together": {("record", "feature")},
3850
+ },
3851
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
3852
+ ),
3853
+ migrations.AddField(
3854
+ model_name="record",
3855
+ name="ulabels",
3856
+ field=models.ManyToManyField(
3857
+ related_name="_records",
3858
+ through="lamindb.RecordULabel",
3859
+ to="lamindb.ulabel",
3860
+ ),
3861
+ ),
3430
3862
  migrations.CreateModel(
3431
3863
  name="CollectionULabel",
3432
3864
  fields=[
@@ -3504,7 +3936,10 @@ class Migration(migrations.Migration):
3504
3936
  ),
3505
3937
  ),
3506
3938
  ],
3507
- bases=(lamindb.models.record.LinkORM, models.Model),
3939
+ options={
3940
+ "unique_together": {("collection", "ulabel")},
3941
+ },
3942
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
3508
3943
  ),
3509
3944
  migrations.AddField(
3510
3945
  model_name="collection",
@@ -3592,7 +4027,10 @@ class Migration(migrations.Migration):
3592
4027
  ),
3593
4028
  ),
3594
4029
  ],
3595
- bases=(lamindb.models.record.LinkORM, models.Model),
4030
+ options={
4031
+ "unique_together": {("artifact", "ulabel", "feature")},
4032
+ },
4033
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
3596
4034
  ),
3597
4035
  migrations.AddField(
3598
4036
  model_name="artifact",
@@ -3660,7 +4098,7 @@ class Migration(migrations.Migration):
3660
4098
  options={
3661
4099
  "unique_together": {("ulabel", "project")},
3662
4100
  },
3663
- bases=(lamindb.models.record.LinkORM, models.Model),
4101
+ bases=(lamindb.models.sqlrecord.IsLink, models.Model),
3664
4102
  ),
3665
4103
  migrations.AddField(
3666
4104
  model_name="project",
@@ -3724,197 +4162,58 @@ class Migration(migrations.Migration):
3724
4162
  blank=True,
3725
4163
  default=lamindb.base.users.current_user_id,
3726
4164
  editable=False,
3727
- on_delete=django.db.models.deletion.PROTECT,
3728
- related_name="+",
3729
- to="lamindb.user",
3730
- ),
3731
- ),
3732
- migrations.AddField(
3733
- model_name="project",
3734
- name="created_by",
3735
- field=lamindb.base.fields.ForeignKey(
3736
- blank=True,
3737
- default=lamindb.base.users.current_user_id,
3738
- editable=False,
3739
- on_delete=django.db.models.deletion.PROTECT,
3740
- related_name="+",
3741
- to="lamindb.user",
3742
- ),
3743
- ),
3744
- migrations.AddField(
3745
- model_name="personproject",
3746
- name="created_by",
3747
- field=lamindb.base.fields.ForeignKey(
3748
- blank=True,
3749
- default=lamindb.base.users.current_user_id,
3750
- editable=False,
3751
- on_delete=django.db.models.deletion.PROTECT,
3752
- related_name="+",
3753
- to="lamindb.user",
3754
- ),
3755
- ),
3756
- migrations.AddField(
3757
- model_name="person",
3758
- name="created_by",
3759
- field=lamindb.base.fields.ForeignKey(
3760
- blank=True,
3761
- default=lamindb.base.users.current_user_id,
3762
- editable=False,
3763
- on_delete=django.db.models.deletion.PROTECT,
3764
- related_name="+",
3765
- to="lamindb.user",
3766
- ),
3767
- ),
3768
- migrations.AddField(
3769
- model_name="param",
3770
- name="created_by",
3771
- field=lamindb.base.fields.ForeignKey(
3772
- blank=True,
3773
- default=lamindb.base.users.current_user_id,
3774
- editable=False,
3775
- on_delete=django.db.models.deletion.PROTECT,
3776
- related_name="+",
3777
- to="lamindb.user",
3778
- ),
3779
- ),
3780
- migrations.CreateModel(
3781
- name="FlexTable",
3782
- fields=[
3783
- (
3784
- "id",
3785
- models.BigAutoField(
3786
- auto_created=True,
3787
- primary_key=True,
3788
- serialize=False,
3789
- verbose_name="ID",
3790
- ),
3791
- ),
3792
- (
3793
- "_branch_code",
3794
- models.SmallIntegerField(db_default=1, db_index=True, default=1),
3795
- ),
3796
- (
3797
- "_aux",
3798
- lamindb.base.fields.JSONField(
3799
- blank=True, db_default=None, default=None, null=True
3800
- ),
3801
- ),
3802
- (
3803
- "created_at",
3804
- lamindb.base.fields.DateTimeField(
3805
- blank=True,
3806
- db_default=django.db.models.functions.datetime.Now(),
3807
- db_index=True,
3808
- editable=False,
3809
- ),
3810
- ),
3811
- (
3812
- "updated_at",
3813
- lamindb.base.fields.DateTimeField(
3814
- blank=True,
3815
- db_default=django.db.models.functions.datetime.Now(),
3816
- db_index=True,
3817
- editable=False,
3818
- ),
3819
- ),
3820
- (
3821
- "uid",
3822
- lamindb.base.fields.CharField(
3823
- blank=True,
3824
- db_index=True,
3825
- default=lamindb.base.ids.base62_12,
3826
- editable=False,
3827
- max_length=12,
3828
- unique=True,
3829
- ),
3830
- ),
3831
- (
3832
- "name",
3833
- lamindb.base.fields.CharField(
3834
- blank=True, default=None, max_length=255
3835
- ),
3836
- ),
3837
- (
3838
- "is_type",
3839
- lamindb.base.fields.BooleanField(
3840
- blank=True, db_index=True, default=False, null=True
3841
- ),
3842
- ),
3843
- (
3844
- "description",
3845
- lamindb.base.fields.CharField(
3846
- blank=True,
3847
- db_index=True,
3848
- default=None,
3849
- max_length=255,
3850
- null=True,
3851
- ),
3852
- ),
3853
- (
3854
- "type",
3855
- lamindb.base.fields.ForeignKey(
3856
- blank=True,
3857
- null=True,
3858
- on_delete=django.db.models.deletion.PROTECT,
3859
- related_name="records",
3860
- to="lamindb.flextable",
3861
- ),
3862
- ),
3863
- (
3864
- "projects",
3865
- models.ManyToManyField(
3866
- related_name="_tidytables", to="lamindb.project"
3867
- ),
3868
- ),
3869
- (
3870
- "run",
3871
- lamindb.base.fields.ForeignKey(
3872
- blank=True,
3873
- default=lamindb.models.run.current_run,
3874
- null=True,
3875
- on_delete=django.db.models.deletion.PROTECT,
3876
- related_name="+",
3877
- to="lamindb.run",
3878
- ),
3879
- ),
3880
- (
3881
- "schema",
3882
- lamindb.base.fields.ForeignKey(
3883
- blank=True,
3884
- null=True,
3885
- on_delete=django.db.models.deletion.SET_NULL,
3886
- related_name="_tidytables",
3887
- to="lamindb.schema",
3888
- ),
3889
- ),
3890
- (
3891
- "space",
3892
- lamindb.base.fields.ForeignKey(
3893
- blank=True,
3894
- db_default=1,
3895
- default=1,
3896
- on_delete=django.db.models.deletion.PROTECT,
3897
- to="lamindb.space",
3898
- ),
3899
- ),
3900
- (
3901
- "ulabels",
3902
- models.ManyToManyField(
3903
- related_name="_tidytables", to="lamindb.ulabel"
3904
- ),
3905
- ),
3906
- (
3907
- "created_by",
3908
- lamindb.base.fields.ForeignKey(
3909
- blank=True,
3910
- default=lamindb.base.users.current_user_id,
3911
- editable=False,
3912
- on_delete=django.db.models.deletion.PROTECT,
3913
- related_name="+",
3914
- to="lamindb.user",
3915
- ),
3916
- ),
3917
- ],
4165
+ on_delete=django.db.models.deletion.PROTECT,
4166
+ related_name="+",
4167
+ to="lamindb.user",
4168
+ ),
4169
+ ),
4170
+ migrations.AddField(
4171
+ model_name="record",
4172
+ name="created_by",
4173
+ field=lamindb.base.fields.ForeignKey(
4174
+ blank=True,
4175
+ default=lamindb.base.users.current_user_id,
4176
+ editable=False,
4177
+ on_delete=django.db.models.deletion.PROTECT,
4178
+ related_name="+",
4179
+ to="lamindb.user",
4180
+ ),
4181
+ ),
4182
+ migrations.AddField(
4183
+ model_name="project",
4184
+ name="created_by",
4185
+ field=lamindb.base.fields.ForeignKey(
4186
+ blank=True,
4187
+ default=lamindb.base.users.current_user_id,
4188
+ editable=False,
4189
+ on_delete=django.db.models.deletion.PROTECT,
4190
+ related_name="+",
4191
+ to="lamindb.user",
4192
+ ),
4193
+ ),
4194
+ migrations.AddField(
4195
+ model_name="personproject",
4196
+ name="created_by",
4197
+ field=lamindb.base.fields.ForeignKey(
4198
+ blank=True,
4199
+ default=lamindb.base.users.current_user_id,
4200
+ editable=False,
4201
+ on_delete=django.db.models.deletion.PROTECT,
4202
+ related_name="+",
4203
+ to="lamindb.user",
4204
+ ),
4205
+ ),
4206
+ migrations.AddField(
4207
+ model_name="person",
4208
+ name="created_by",
4209
+ field=lamindb.base.fields.ForeignKey(
4210
+ blank=True,
4211
+ default=lamindb.base.users.current_user_id,
4212
+ editable=False,
4213
+ on_delete=django.db.models.deletion.PROTECT,
4214
+ related_name="+",
4215
+ to="lamindb.user",
4216
+ ),
3918
4217
  ),
3919
4218
  migrations.AddField(
3920
4219
  model_name="featurevalue",
@@ -4001,19 +4300,19 @@ class Migration(migrations.Migration):
4001
4300
  ),
4002
4301
  ),
4003
4302
  migrations.AddField(
4004
- model_name="artifactreference",
4303
+ model_name="branch",
4005
4304
  name="created_by",
4006
4305
  field=lamindb.base.fields.ForeignKey(
4007
4306
  blank=True,
4008
- default=lamindb.base.users.current_user_id,
4009
- editable=False,
4010
- on_delete=django.db.models.deletion.PROTECT,
4307
+ default=None,
4308
+ null=True,
4309
+ on_delete=django.db.models.deletion.CASCADE,
4011
4310
  related_name="+",
4012
4311
  to="lamindb.user",
4013
4312
  ),
4014
4313
  ),
4015
4314
  migrations.AddField(
4016
- model_name="artifactproject",
4315
+ model_name="artifactreference",
4017
4316
  name="created_by",
4018
4317
  field=lamindb.base.fields.ForeignKey(
4019
4318
  blank=True,
@@ -4025,7 +4324,7 @@ class Migration(migrations.Migration):
4025
4324
  ),
4026
4325
  ),
4027
4326
  migrations.AddField(
4028
- model_name="artifactparamvalue",
4327
+ model_name="artifactproject",
4029
4328
  name="created_by",
4030
4329
  field=lamindb.base.fields.ForeignKey(
4031
4330
  blank=True,
@@ -4061,346 +4360,55 @@ class Migration(migrations.Migration):
4061
4360
  ),
4062
4361
  ),
4063
4362
  migrations.CreateModel(
4064
- name="RunData",
4363
+ name="RecordJson",
4065
4364
  fields=[
4365
+ ("id", models.BigAutoField(primary_key=True, serialize=False)),
4066
4366
  (
4067
- "id",
4068
- models.BigAutoField(
4069
- auto_created=True,
4070
- primary_key=True,
4071
- serialize=False,
4072
- verbose_name="ID",
4073
- ),
4074
- ),
4075
- (
4076
- "row",
4077
- lamindb.base.fields.IntegerField(
4078
- blank=True, help_text="Use -1 for result data"
4367
+ "value",
4368
+ lamindb.base.fields.JSONField(
4369
+ blank=True, db_default=None, default=None
4079
4370
  ),
4080
4371
  ),
4081
- ("value_int", models.BigIntegerField(blank=True, null=True)),
4082
- ("value_float", models.FloatField(blank=True, null=True)),
4083
- ("value_str", models.TextField(blank=True, null=True)),
4084
- ("value_datetime", models.DateTimeField(blank=True, null=True)),
4085
- ("value_json", models.JSONField(blank=True, null=True)),
4086
4372
  (
4087
4373
  "feature",
4088
4374
  lamindb.base.fields.ForeignKey(
4089
4375
  blank=True,
4090
- null=True,
4091
4376
  on_delete=django.db.models.deletion.CASCADE,
4092
- related_name="+",
4377
+ related_name="links_recordjson",
4093
4378
  to="lamindb.feature",
4094
4379
  ),
4095
4380
  ),
4096
4381
  (
4097
- "param",
4098
- lamindb.base.fields.ForeignKey(
4099
- blank=True,
4100
- null=True,
4101
- on_delete=django.db.models.deletion.CASCADE,
4102
- related_name="+",
4103
- to="lamindb.param",
4104
- ),
4105
- ),
4106
- (
4107
- "run",
4108
- models.ForeignKey(
4109
- on_delete=django.db.models.deletion.CASCADE,
4110
- related_name="_rundata",
4111
- to="lamindb.run",
4112
- ),
4113
- ),
4114
- (
4115
- "value_artifact",
4116
- models.ForeignKey(
4117
- blank=True,
4118
- null=True,
4119
- on_delete=django.db.models.deletion.CASCADE,
4120
- related_name="+",
4121
- to="lamindb.artifact",
4122
- ),
4123
- ),
4124
- (
4125
- "value_collection",
4126
- models.ForeignKey(
4127
- blank=True,
4128
- null=True,
4129
- on_delete=django.db.models.deletion.CASCADE,
4130
- related_name="+",
4131
- to="lamindb.collection",
4132
- ),
4133
- ),
4134
- (
4135
- "value_person",
4136
- models.ForeignKey(
4137
- blank=True,
4138
- null=True,
4139
- on_delete=django.db.models.deletion.CASCADE,
4140
- related_name="+",
4141
- to="lamindb.person",
4142
- ),
4143
- ),
4144
- (
4145
- "value_project",
4146
- models.ForeignKey(
4147
- blank=True,
4148
- null=True,
4149
- on_delete=django.db.models.deletion.CASCADE,
4150
- related_name="+",
4151
- to="lamindb.project",
4152
- ),
4153
- ),
4154
- (
4155
- "space",
4382
+ "record",
4156
4383
  lamindb.base.fields.ForeignKey(
4157
4384
  blank=True,
4158
- db_default=1,
4159
- default=1,
4160
- on_delete=django.db.models.deletion.PROTECT,
4161
- to="lamindb.space",
4162
- ),
4163
- ),
4164
- (
4165
- "value_ulabel",
4166
- models.ForeignKey(
4167
- blank=True,
4168
- null=True,
4169
4385
  on_delete=django.db.models.deletion.CASCADE,
4170
- related_name="+",
4171
- to="lamindb.ulabel",
4386
+ related_name="values_json",
4387
+ to="lamindb.record",
4172
4388
  ),
4173
4389
  ),
4174
4390
  ],
4175
4391
  options={
4176
- "indexes": [
4177
- models.Index(
4178
- fields=["run", "row"], name="lamindb_run_run_id_c02e71_idx"
4179
- ),
4180
- models.Index(
4181
- fields=["feature"], name="lamindb_run_feature_a37229_idx"
4182
- ),
4183
- models.Index(
4184
- fields=["param"], name="lamindb_run_param_i_cee058_idx"
4185
- ),
4186
- ],
4187
- "constraints": [
4188
- models.CheckConstraint(
4189
- condition=models.Q(
4190
- models.Q(
4191
- ("feature__isnull", False), ("param__isnull", True)
4192
- ),
4193
- models.Q(
4194
- ("feature__isnull", True), ("param__isnull", False)
4195
- ),
4196
- _connector="OR",
4197
- ),
4198
- name="run_data_feature_param_mutex",
4199
- ),
4200
- models.UniqueConstraint(
4201
- fields=("run", "row", "feature", "param"),
4202
- name="run_data_unique",
4203
- ),
4204
- ],
4392
+ "unique_together": {("record", "feature")},
4205
4393
  },
4394
+ bases=(models.Model, lamindb.models.sqlrecord.IsLink),
4206
4395
  ),
4207
- migrations.CreateModel(
4208
- name="FlexTableData",
4209
- fields=[
4210
- (
4211
- "id",
4212
- models.BigAutoField(
4213
- auto_created=True,
4214
- primary_key=True,
4215
- serialize=False,
4216
- verbose_name="ID",
4217
- ),
4218
- ),
4219
- (
4220
- "row",
4221
- lamindb.base.fields.IntegerField(
4222
- blank=True, help_text="Use -1 for result data"
4223
- ),
4224
- ),
4225
- ("value_int", models.BigIntegerField(blank=True, null=True)),
4226
- ("value_float", models.FloatField(blank=True, null=True)),
4227
- ("value_str", models.TextField(blank=True, null=True)),
4228
- ("value_datetime", models.DateTimeField(blank=True, null=True)),
4229
- ("value_json", models.JSONField(blank=True, null=True)),
4230
- (
4231
- "feature",
4232
- lamindb.base.fields.ForeignKey(
4233
- blank=True,
4234
- null=True,
4235
- on_delete=django.db.models.deletion.CASCADE,
4236
- related_name="+",
4237
- to="lamindb.feature",
4238
- ),
4239
- ),
4240
- (
4241
- "tidytable",
4242
- models.ForeignKey(
4243
- on_delete=django.db.models.deletion.CASCADE,
4244
- related_name="data",
4245
- to="lamindb.flextable",
4246
- ),
4247
- ),
4248
- (
4249
- "value_artifact",
4250
- models.ForeignKey(
4251
- blank=True,
4252
- null=True,
4253
- on_delete=django.db.models.deletion.CASCADE,
4254
- related_name="+",
4255
- to="lamindb.artifact",
4256
- ),
4257
- ),
4258
- (
4259
- "value_collection",
4260
- models.ForeignKey(
4261
- blank=True,
4262
- null=True,
4263
- on_delete=django.db.models.deletion.CASCADE,
4264
- related_name="+",
4265
- to="lamindb.collection",
4266
- ),
4267
- ),
4268
- (
4269
- "param",
4270
- lamindb.base.fields.ForeignKey(
4271
- blank=True,
4272
- null=True,
4273
- on_delete=django.db.models.deletion.CASCADE,
4274
- related_name="+",
4275
- to="lamindb.param",
4276
- ),
4277
- ),
4278
- (
4279
- "value_person",
4280
- models.ForeignKey(
4281
- blank=True,
4282
- null=True,
4283
- on_delete=django.db.models.deletion.CASCADE,
4284
- related_name="+",
4285
- to="lamindb.person",
4286
- ),
4287
- ),
4288
- (
4289
- "value_project",
4290
- models.ForeignKey(
4291
- blank=True,
4292
- null=True,
4293
- on_delete=django.db.models.deletion.CASCADE,
4294
- related_name="+",
4295
- to="lamindb.project",
4296
- ),
4297
- ),
4298
- (
4299
- "space",
4300
- lamindb.base.fields.ForeignKey(
4301
- blank=True,
4302
- db_default=1,
4303
- default=1,
4304
- on_delete=django.db.models.deletion.PROTECT,
4305
- to="lamindb.space",
4306
- ),
4307
- ),
4308
- (
4309
- "value_ulabel",
4310
- models.ForeignKey(
4311
- blank=True,
4312
- null=True,
4313
- on_delete=django.db.models.deletion.CASCADE,
4314
- related_name="+",
4315
- to="lamindb.ulabel",
4316
- ),
4317
- ),
4318
- ],
4319
- options={
4320
- "indexes": [
4321
- models.Index(
4322
- fields=["tidytable", "row"],
4323
- name="lamindb_fle_tidytab_1674c1_idx",
4324
- ),
4325
- models.Index(
4326
- fields=["feature"], name="lamindb_fle_feature_830e49_idx"
4327
- ),
4328
- models.Index(
4329
- fields=["param"], name="lamindb_fle_param_i_4149cb_idx"
4330
- ),
4331
- ],
4332
- "constraints": [
4333
- models.CheckConstraint(
4334
- condition=models.Q(
4335
- models.Q(
4336
- ("feature__isnull", False), ("param__isnull", True)
4337
- ),
4338
- models.Q(
4339
- ("feature__isnull", True), ("param__isnull", False)
4340
- ),
4341
- _connector="OR",
4342
- ),
4343
- name="tidy_table_data_feature_param_mutex",
4344
- ),
4345
- models.UniqueConstraint(
4346
- fields=("tidytable", "row", "feature", "param"),
4347
- name="tidy_table_data_unique",
4348
- ),
4349
- ],
4350
- },
4396
+ migrations.AlterUniqueTogether(
4397
+ name="transform",
4398
+ unique_together={("key", "hash")},
4351
4399
  ),
4352
4400
  migrations.AlterUniqueTogether(
4353
4401
  name="personproject",
4354
4402
  unique_together={("person", "project")},
4355
4403
  ),
4356
- migrations.AddConstraint(
4357
- model_name="paramvalue",
4358
- constraint=models.UniqueConstraint(
4359
- condition=models.Q(("hash__isnull", True)),
4360
- fields=("param", "value"),
4361
- name="unique_simple_param_value",
4362
- ),
4363
- ),
4364
- migrations.AddConstraint(
4365
- model_name="paramvalue",
4366
- constraint=models.UniqueConstraint(
4367
- condition=models.Q(("hash__isnull", False)),
4368
- fields=("param", "hash"),
4369
- name="unique_complex_param_value",
4370
- ),
4371
- ),
4372
- migrations.AddIndex(
4373
- model_name="flextable",
4374
- index=models.Index(fields=["uid"], name="lamindb_fle_uid_e6f216_idx"),
4375
- ),
4376
- migrations.AddIndex(
4377
- model_name="flextable",
4378
- index=models.Index(fields=["name"], name="lamindb_fle_name_568594_idx"),
4379
- ),
4380
- migrations.AddConstraint(
4381
- model_name="featurevalue",
4382
- constraint=models.UniqueConstraint(
4383
- condition=models.Q(("hash__isnull", True)),
4384
- fields=("feature", "value"),
4385
- name="unique_simple_feature_value",
4386
- ),
4387
- ),
4388
- migrations.AddConstraint(
4389
- model_name="featurevalue",
4390
- constraint=models.UniqueConstraint(
4391
- condition=models.Q(("hash__isnull", False)),
4392
- fields=("feature", "hash"),
4393
- name="unique_complex_feature_value",
4394
- ),
4404
+ migrations.AlterUniqueTogether(
4405
+ name="featurevalue",
4406
+ unique_together={("feature", "hash")},
4395
4407
  ),
4396
4408
  migrations.AlterUniqueTogether(
4397
4409
  name="featureproject",
4398
4410
  unique_together={("feature", "project")},
4399
4411
  ),
4400
- migrations.AlterUniqueTogether(
4401
- name="collectionulabel",
4402
- unique_together={("collection", "ulabel")},
4403
- ),
4404
4412
  migrations.AlterUniqueTogether(
4405
4413
  name="collectionreference",
4406
4414
  unique_together={("collection", "reference")},
@@ -4413,14 +4421,6 @@ class Migration(migrations.Migration):
4413
4421
  name="collectionartifact",
4414
4422
  unique_together={("collection", "artifact")},
4415
4423
  ),
4416
- migrations.AlterUniqueTogether(
4417
- name="artifactulabel",
4418
- unique_together={("artifact", "ulabel", "feature")},
4419
- ),
4420
- migrations.AlterUniqueTogether(
4421
- name="artifactschema",
4422
- unique_together={("artifact", "schema"), ("artifact", "slot")},
4423
- ),
4424
4424
  migrations.AlterUniqueTogether(
4425
4425
  name="artifactreference",
4426
4426
  unique_together={("artifact", "reference", "feature")},
@@ -4429,12 +4429,16 @@ class Migration(migrations.Migration):
4429
4429
  name="artifactproject",
4430
4430
  unique_together={("artifact", "project", "feature")},
4431
4431
  ),
4432
- migrations.AlterUniqueTogether(
4433
- name="artifactparamvalue",
4434
- unique_together={("artifact", "paramvalue")},
4435
- ),
4436
4432
  migrations.AlterUniqueTogether(
4437
4433
  name="artifactfeaturevalue",
4438
4434
  unique_together={("artifact", "featurevalue")},
4439
4435
  ),
4436
+ migrations.AddConstraint(
4437
+ model_name="artifact",
4438
+ constraint=models.UniqueConstraint(
4439
+ condition=models.Q(("key__isnull", False)),
4440
+ fields=("storage", "key", "hash"),
4441
+ name="unique_artifact_storage_key_hash",
4442
+ ),
4443
+ ),
4440
4444
  ]