Commit Graph

459 Commits

Author SHA1 Message Date
Simon Binder 1497d719b5
Extend check to all literal uses 2022-12-19 23:55:13 +01:00
Alexander Wilde bdfa8124fe Allow referencing enum value for default 2022-12-19 12:27:46 +00:00
Simon Binder e2265eb597
Add `DriftAny` type to wrap `ANY` in strit tables 2022-12-18 18:55:17 +01:00
Simon Binder b520568984
Ignore internal tables when reading schema from db 2022-12-18 15:26:40 +01:00
Simon Binder 0e395bbef3
Fix `JSON KEY` not working 2022-12-17 21:36:24 +01:00
Simon Binder 425878b712
Fix tests around custom constraints 2022-12-16 16:03:34 +01:00
Simon Binder 657b68ab76
Extract custom Dart table constraints into schema 2022-12-16 15:34:07 +01:00
Simon Binder add680b8bf
Move `SchemaInstantiationHelper` to drift package 2022-12-16 14:09:54 +01:00
Simon Binder 5f8b1e3358
Recognize database files when dumping schema data 2022-12-15 16:47:44 +01:00
Simon Binder 00dbc2f886
Avoid nested codes, add tests 2022-12-13 21:53:17 +01:00
Peter Leibiger a5f184857d
Fix duplicate result classes in modular mode 2022-12-13 01:41:03 +01:00
Peter Leibiger a3ce27f4e0
Fix typos 2022-12-13 01:40:21 +01:00
Peter Leibiger bf3f15909c
Fix converter import prefixes missing in modular mode 2022-12-13 01:39:46 +01:00
Simon Binder 16e6aaf4fe
Use extension for all tables in modular generation 2022-12-12 23:50:11 +01:00
Simon Binder ec2b564611
Fox crash when serializing simple queries 2022-12-12 22:18:10 +01:00
Simon Binder b6cff50135
Parse custom constraints applied to columns 2022-12-11 00:06:45 +01:00
Simon Binder 1c06873403
Fix reading triggers in old schema files (#2191) 2022-12-10 22:57:45 +01:00
Simon Binder fb3d832f0f
Fix modular accessors sometimes not being generated 2022-12-07 21:27:45 +01:00
Simon Binder 6659d78ca7
Oops, fix compilation errors 2022-12-07 11:05:22 +01:00
Simon Binder c0c1810bcf
Don't generate empty drift accessors 2022-12-07 10:55:20 +01:00
Simon Binder a637708591
Generate getters for DAO as well 2022-12-06 22:10:21 +01:00
Simon Binder 5a8dd923d6
Add more examples to modular project 2022-12-06 21:19:20 +01:00
Alexander Wilde ec01ad275a Various fixes for modular code gen 2022-12-05 17:16:06 +00:00
Simon Binder dafa07a88a
Don't further analyze part files (#2185) 2022-12-05 17:59:51 +01:00
Simon Binder c0d5188c18
Fix generating modular type converter code (#2183) 2022-12-04 19:14:24 +01:00
Simon Binder d60c775435
Merge pull request #2181 from ValentinVignal/column-name-case
Add the `column_name_case` option
2022-12-03 14:13:16 +01:00
Simon Binder d366cff9ee
Write utils for function stubs 2022-12-03 14:05:58 +01:00
ValentinVignal 8a34a41fba
♻️ apply the recase option to table name 2022-12-03 16:16:13 +08:00
ValentinVignal 496635afb5
🚚 Rename column_name_case into case_from_dart_to_sql 2022-12-03 15:55:58 +08:00
ValentinVignal b08088ab1b
Merge remote-tracking branch 'upstream/develop' into column-name-case 2022-12-03 14:56:51 +08:00
Simon Binder 387a21c580
Relax constraints on element order in drift files 2022-12-03 00:06:05 +01:00
Simon Binder 1a51dbf4d6
Static analysis support for custom functions 2022-12-02 23:34:42 +01:00
ValentinVignal ce0568e70c
📦 Re-run build runner 2022-12-01 23:34:00 +08:00
ValentinVignal 3835e0aae4
Adds column_name_case option 2022-12-01 23:26:33 +08:00
Alexander Wilde c1ee1f7274 Add JsonTypeConverter support to enums 2022-12-01 04:43:20 +00:00
ValentinVignal 3cfa69c9d9
:sparkles Add ENUMNAME type 2022-12-01 00:40:13 +08:00
ValentinVignal 99affe3fac
🐛 Use correct type for enum converter 2022-11-30 23:53:46 +08:00
ValentinVignal 197a3862e7
Merge remote-tracking branch 'upstream/develop' into textEnum
# Conflicts:
#	drift_dev/CHANGELOG.md
#	drift_dev/pubspec.yaml
2022-11-30 22:47:58 +08:00
Simon Binder 0ee8a6a7f9
Fix code generation for triggers and indices 2022-11-29 10:39:45 +01:00
Simon Binder d24644113a
Fix generating schema test code 2022-11-28 21:59:17 +01:00
ValentinVignal 4030db4c5f
🎨 Better type comparison and matcher 2022-11-28 18:54:56 +08:00
ValentinVignal e8ee29bb18
textEnum 2022-11-26 21:51:13 +08:00
Simon Binder 15edd501aa
Support generating database accessors in modular mode 2022-11-25 14:49:14 +01:00
Simon Binder 59d347adbe
Fix spellfix1 module with new analyzer 2022-11-22 20:06:17 +01:00
Simon Binder fde7adde48
Support triggers and indices in modular generation 2022-11-22 20:06:16 +01:00
Simon Binder f4e45584ec
Begin optional modular code generation 2022-11-20 17:28:27 +01:00
Simon Binder 72a85b799c
Fix tests with new generator 2022-11-19 16:24:07 +01:00
Simon Binder c77fc3612f
Run dart format in drift_dev 2022-11-18 17:01:21 +01:00
Simon Binder 6512dc1cfc
Merge remote-tracking branch 'origin/develop' into modular-generation 2022-11-18 16:56:55 +01:00
Simon Binder 596a35b58e
Document basic analysis concept 2022-11-18 16:33:19 +01:00
Simon Binder e1ec5faa93
Fix analysis warnings in new analyzer 2022-11-18 12:19:03 +01:00
Simon Binder 564b4c887f
Migrate remaining tests 2022-11-18 12:02:38 +01:00
Simon Binder ec311aea57
Migrate remaining analyzer tests 2022-11-18 10:46:00 +01:00
Simon Binder 873cc9a7a9
Migrate service tests to new analyzer 2022-11-13 17:41:09 +01:00
Simon Binder ce0dffb362
Migrate entity reference sorter test 2022-11-11 18:17:16 +01:00
Simon Binder c69d1a6628
Delete old analyzer and model 2022-11-11 18:02:30 +01:00
Simon Binder ea6a8a2217
Re-generate migration tests 2022-11-11 17:50:21 +01:00
Simon Binder 360ee348a2
Fix compilation errors in CLI 2022-11-09 21:59:45 +01:00
Simon Binder d491db8599
Move dialect to SqlTypes constructor, re-generate 2022-11-07 15:53:16 +01:00
Abitofevrything cb1389f272 Extract generated code to method 2022-11-05 20:34:55 +01:00
Simon Binder 3b12faaa46
Start migrating schema files to new analyzer 2022-11-05 19:44:43 +01:00
Simon Binder c5a800d4c4
Migrate simple CLI tools to new analyzer 2022-11-05 18:32:13 +01:00
Simon Binder c5504237d5
Make drift's tests pass with new analyzer 2022-11-04 13:42:06 +01:00
Simon Binder c2b319bc8e
Fix writing type converters 2022-11-01 00:14:17 +01:00
Simon Binder fe3566429f
Migrate more analyzer tests 2022-10-30 19:41:59 +01:00
Simon Binder 23b0c8a362
Migrate drift file analysis tests to new analyzer 2022-10-30 16:09:38 +01:00
Simon Binder 292dd9946d
Port more tests over to new analyzer 2022-10-29 17:30:18 +02:00
Abitofevrything 2106b7010b Pass dialect to SqlTypes methods 2022-10-29 16:36:04 +02:00
Abitofevrything fbff2ceccd Use postgresql boolean type for bool columns 2022-10-29 15:48:45 +02:00
Simon Binder 49470e8361
Support serializing fts5 tablesi n new analyzer 2022-10-29 14:39:28 +02:00
Abitofevrything 52b885c007 Don't export customConstraints in schema file is constraints are empty 2022-10-29 14:22:22 +02:00
Abitofevrything 52d2d908c0 Don't generate empty constraints 2022-10-29 13:37:38 +02:00
Abitofevrything c8d63b845d Generate dialect-specific constraints 2022-10-29 13:16:21 +02:00
Simon Binder fdd1d2c66e
Fix deprecation warnings from analyzer upgrade 2022-10-29 12:17:07 +02:00
Simon Binder e3a29ebbe2
Migrate some tests to new analyzer 2022-10-26 23:09:05 +02:00
Simon Binder 69808525c0
Port over drift lints to new analyzer 2022-10-26 20:36:35 +02:00
Simon Binder 81679b8ff1
Fix formatting some Dart placeholders 2022-10-23 18:13:40 +02:00
Simon Binder f38d56842e
Fix nullability for drift -> sqlparser mapping 2022-10-23 17:46:57 +02:00
Simon Binder 9f48d49cb3
Read primary key in drift files 2022-10-23 17:36:28 +02:00
Simon Binder 75169c9d7e
Read type converters in drift files 2022-10-23 17:15:59 +02:00
Simon Binder 70a88cfe3a
Fix generating array types with new analyzers 2022-10-23 15:52:21 +02:00
Simon Binder e3b6c56f08
Fix syntax error in generated code for queries 2022-10-19 23:35:54 +02:00
Simon Binder 2ec63749f8
New analyzer: Better support for virtual tables 2022-10-18 22:28:53 +02:00
Simon Binder b16b5ad2c2
Merge branch 'develop' into modular-generation 2022-10-18 21:55:43 +02:00
Simon Binder 92bb5a7fa1
Add test and changelog 2022-10-18 20:36:09 +02:00
Alexander Wilde 09951adda6 JsonTypeConverterWithDifferentTypes -> JsonTypeConverter2 2022-10-18 01:06:22 +01:00
Alexander Wilde ff9d419559 Backwards compatible attempt 2022-10-16 00:44:58 +01:00
Alexander Wilde ba28b51125 Decouple JsonTypeConverter from TypeConverter 2022-10-14 19:56:28 +01:00
Simon Binder 81ba7686c7
Generate queries with new analyzer 2022-10-13 22:05:42 +02:00
Simon Binder b16d8f5e3a
Fix generated view code 2022-10-13 19:25:54 +02:00
Simon Binder 189af5d443
View generation wth new analyzer 2022-10-12 01:23:17 +02:00
Simon Binder 3dddbaf467
Merge branch 'develop' into modular-generation 2022-10-10 23:45:48 +02:00
Simon Binder 3d969c787f
Infer generated columns for drift 2022-10-10 23:18:10 +02:00
Simon Binder 0b68d68b6c
New analyzer: Support Dart views 2022-10-10 00:07:00 +02:00
Simon Binder 470fb49592
Write companions with new analyzer 2022-10-03 17:37:10 +02:00
Simon Binder 1a39c5eb8d
Start emitting data class and table code 2022-10-03 15:04:22 +02:00
Simon Binder ef1b94af1d
Start generating code with new analyzer 2022-10-02 23:15:11 +02:00
Roman Laptev b2796fc77e
[drift_dev] Update analyzer and deprecated methods (#2084) 2022-09-27 21:30:12 +02:00
Simon Binder 8c1a62ae1b
Serialize and read uniqueKeys from schema (#2069) 2022-09-22 17:47:06 +02:00
Simon Binder 28c90b6ffb
Always escape column names
This avoids the performance impact of using a regex in `escapeIfNeeded`.
Closes #2071.
2022-09-22 16:55:36 +02:00
Simon Binder dcdbcb7156
Simple test for new query analyzer 2022-09-18 21:52:36 +02:00
Simon Binder b33ef8a220
Analyze SQL queries 2022-09-18 21:25:46 +02:00
Simon Binder 5947956109
Start generating code from new analysis results 2022-09-17 23:14:52 +02:00
Simon Binder a6caae9d8f
Parse entrypoints in new analyzer 2022-09-17 00:16:53 +02:00
Simon Binder 090a0053f1
Merge branch 'develop' into modular-generation 2022-09-16 20:03:17 +02:00
Fabian Freund cd89379627
Static analysis support for spellfix1 (#2013) 2022-09-16 16:02:39 +02:00
Simon Binder 24316c80a6
Remove unecessary schema_version assignment 2022-09-13 22:01:00 +02:00
Simon Binder 4da647e8a3
Ignore android_metadata table in schema comparison 2022-09-13 10:38:46 +02:00
Simon Binder 2bd7596de6
New analyzer: Basic query support 2022-09-12 22:56:33 +02:00
Simon Binder e08ccdbcda
New analyzer: Support analyzing drift views 2022-09-12 21:57:19 +02:00
Daniel Brauner 025bb7c44b
Generated functions for returning queries return Iterable<_> instead of List<_> (#2044)
* fix for missing toList

* removed unnecessary toList
2022-09-12 19:05:45 +02:00
Simon Binder ac52957848
Prepare analysis for views 2022-09-11 22:11:12 +02:00
Simon Binder 5508a9f246
Support triggers in new analyzer 2022-09-10 23:50:24 +02:00
Simon Binder aa5cb69799
Support indices in new analyzer 2022-09-10 23:22:39 +02:00
Simon Binder 97ed32f05a
Serialize column constraints 2022-09-10 18:18:39 +02:00
Simon Binder eabf2a1e03
Fix Dart reference analysis in new analyzer 2022-09-10 17:56:25 +02:00
Simon Binder 0f97b42a43
Analyze Dart tables with new analyzer 2022-09-10 16:34:17 +02:00
Simon Binder e88ec41555
More work on Dart table analysis in new analyzer 2022-09-10 01:05:09 +02:00
Simon Binder 1681c83bea
Fix null analysis for Dart views (#2031) 2022-09-08 23:06:00 +02:00
Simon Binder e20d43c07c
Add test for dart file discovery 2022-09-05 23:31:01 +02:00
Simon Binder 61e568104a
Discover dart tables in new analyzer 2022-09-03 23:29:18 +02:00
Simon Binder 9eb15149d7
Serialize drift analysis results 2022-09-01 23:10:54 +02:00
Simon Binder 5637afe35a
Handle simple references in new table analyzer 2022-09-01 20:41:32 +02:00
Simon Binder 009056dc37
Handle equality and hashes for blobs 2022-09-01 18:11:41 +02:00
Simon Binder 13e7fd2b0b
Begin with table analysis in the new analyzer 2022-08-31 23:15:11 +02:00
Simon Binder 0242ce56ac
Start resolving drift tables in new analyzer 2022-08-30 23:58:36 +02:00
Simon Binder aae09c02b0
Simple tests for pre-analysis step 2022-08-30 22:50:07 +02:00
Simon Binder 2575f36e82
Merge branch 'develop' into modular-generation 2022-08-30 21:20:32 +02:00
Konstantin Scheglov b399db78e3
Prepare for separating ClassElement, EnumElement, and MixinElement. (#2025)
* Prepare for separating ClassElement, EnumElement, and MixinElement.

* Improve error UX when casting to ClassElement

Co-authored-by: Simon Binder <oss@simonbinder.eu>
2022-08-29 20:44:09 +02:00
Simon Binder b87e5cae0c
Drift-specific analysis for fts5 tables 2022-08-25 18:50:24 +02:00
Fabian Freund d1e623a0c6 added rtree support 2022-08-23 16:33:23 +03:00
Simon Binder f82ea5936d
Draft for drift file discovery 2022-08-22 22:05:39 +02:00
Simon Binder 5e4a65eace
First draft for intermediate results 2022-08-21 23:45:42 +02:00
Simon Binder b088537b81
Preprocess step for new analysis runner 2022-08-20 22:54:46 +02:00
North101 a927d3717a
Typealiases and easier defaults for scoped components
Closes #1993.
2022-08-20 00:22:28 +02:00
Simon Binder 7bc0aecf4c
Initial draft of outline model 2022-08-19 22:20:28 +02:00
westito 5a49c9540b
Fix column writer nullability check (#1846) 2022-08-18 21:53:50 +02:00
Simon Binder ea1c635da8
Stop generating unecessary null check 2022-08-16 17:36:29 +02:00
Simon Binder 27ea49137d
Properly read options (#1992) 2022-08-16 16:05:08 +02:00
Simon Binder a89cef5262
Delete old moor packages 2022-08-14 22:57:37 +02:00
Simon Binder 9011137c8e
Fix migration code for virtual tables (#1988) 2022-08-14 15:01:21 +02:00
Simon Binder 8f6878292a
Migrate to `package:lints` 2022-08-13 23:33:05 +02:00
Simon Binder a4fe582f25
Collect documentation for 2.0 release 2022-08-13 14:18:17 +02:00
Simon Binder b9a605ed25
Allow async mappings from SQL to row classes
When existing, custom row classes are used, drift now supports using a
(potentially asynchronous) static method to load them instead of just
a named constructor like before.
Tables are also changed to support the `map` method being async for
cases where that is needed. The same applies to custom queries which
may have to be async now.
2022-08-12 22:55:02 +02:00
Konstantin Shcheglov 23c8502c34 Require analyzer 4.5.0, stop using deprecated APIs. 2022-08-09 16:19:23 -07:00
Simon Binder 1edeb4fe45
Merge pull request #1958 from simolus3/fix-toColumns-null-check
Remove null check when parameter is not nullable in dart
2022-08-08 22:25:19 +02:00
westito 40554c8166 Merge remote-tracking branch 'simolus3/develop' into fix-lint-warning 2022-08-08 11:30:57 +02:00
westito 5c05b4e375
Update drift_dev/lib/src/writer/database_writer.dart
Co-authored-by: Simon Binder <oss@simonbinder.eu>
2022-08-08 11:27:03 +02:00
westito 940ecd2ec4 Merge remote-tracking branch 'simolus3/develop' into fix-toColumns-null-check 2022-08-08 11:18:49 +02:00
Simon Binder 50a65b236a
Upgrade to latest analyzer 2022-08-06 22:11:44 +02:00
Simon Binder 8cc85de5f7
Improve error message for schema difference 2022-08-06 21:35:05 +02:00
westito 26333eafb5 Fix lint warnings when strict type check enabled 2022-08-01 12:15:42 +02:00
westito 4bb36488e1 Remove null check when parameter is not nullable in dart 2022-08-01 12:03:43 +02:00
Simon Binder c69b34278b
Fix overly long line 2022-07-29 19:05:42 +02:00
Simon Binder cf95ed6f05
Re-generate migration tests in app example 2022-07-29 18:54:41 +02:00
Simon Binder 0cb3527680
Schema tool: Store whether dates are text 2022-07-26 19:18:17 +02:00
Simon Binder 9158c31240
Respect db options in runtime schema validation 2022-07-26 18:33:09 +02:00
Simon Binder d79c7e07ba
Lints for probable text datetime misuses 2022-07-25 20:58:39 +02:00
Simon Binder 6c0e27b24c
SQL analysis for text datetimes 2022-07-24 19:19:18 +02:00
Simon Binder 592e2cdd5d
Add build option for dates as text 2022-07-24 17:50:48 +02:00
Simon Binder efb4c5f503
Fix deprecation warning 2022-07-23 23:20:07 +02:00
Simon Binder 867f8cbfed
Remove drift_dev's ColumnType 2022-07-21 21:12:55 +02:00
Alexander Wilde e12021150e Fix generated fromJson for nullable columns with a JsonTypeConverters 2022-07-21 17:33:23 +01:00
Simon Binder 3744fa0601
Merge branch 'develop' into refactor-type-system 2022-07-20 22:37:34 +02:00
Simon Binder a8c6031fc4
Add documentation comments, fix analysis warnings 2022-07-19 23:01:22 +02:00
Simon Binder 22d5f0a8ae
Fix tests 2022-07-19 22:55:08 +02:00
ValentinVignal c380d16aa1 Use const constructor for immutable classes 2022-07-19 09:53:59 +08:00
Simon Binder cf8d2618fa
First attempt to get it running again 2022-07-18 23:28:12 +02:00
Simon Binder 8d840f3eb3
Remove includeJoinedTableColumns entirely 2022-07-16 12:07:12 +02:00
Simon Binder 1af6bb78d9
Start removing the SqlTypeSystem class 2022-07-12 17:04:01 +02:00
Simon Binder 388b31e9ea
Remove some moor references in drift_dev 2022-07-03 22:20:24 +02:00
Simon Binder 116f98269d
Always enable the new SQL generation mode 2022-07-03 21:53:17 +02:00
Simon Binder 52c07c9d3f
Remove support for non-nnbd code 2022-07-01 21:51:14 +02:00
Alexander Wilde 5388a03fc6 Update innerColumnType comment 2022-06-29 12:18:40 +01:00
Alexander Wilde 6f6eaadf28 Fix non-null JsonTypeConverter 2022-06-29 11:27:27 +01:00
Simon Binder 1b06fcfc77
Merge branch 'develop' into fix-tests 2022-06-28 23:05:22 +02:00
Simon Binder bfad77788e
Handle nullable converters for compiled queries 2022-06-28 22:34:11 +02:00
westito 292da80167 Regenerate all files 2022-06-28 13:24:57 +02:00
Simon Binder 5317d0a33b
Upgrade to new analysis plugin API 2022-06-23 22:46:23 +02:00
Simon Binder 8a68527fee
Merge remote-tracking branch 'North101/develop' into develop 2022-06-23 21:01:07 +02:00
Simon Binder cf1e94d384
Automatically make some converters nullable 2022-06-23 20:56:56 +02:00
Alexander Wilde 345faa91c7 TypeConverter mapToDart -> fromSql, mapToSql -> toSql 2022-06-22 23:50:19 +01:00
Simon Binder 06af930941
Explicit null-aware types on type converters 2022-06-22 23:56:15 +02:00
Simon Binder 7be4e90569
Exclude internal tables from schema verification 2022-06-10 11:02:52 +02:00
westito a816c1aac2 Fix typeconverter-depend nullability in DataClass copyWidth 2022-05-30 13:25:18 +02:00
Simon Binder e503bc68a5
New implementation for reference scopes 2022-05-25 23:32:15 +02:00
Simon Binder 117fb19db4
Improve error msg for old sqlite3 version 2022-05-25 15:43:53 +02:00
Simon Binder 49f3f64bcc
Fix view mapping generation (#1855) 2022-05-24 18:41:48 +02:00
Jishnu Mohan dc4e542f26
Support analyzer 4.x.x (#1841) 2022-05-18 12:39:46 +02:00
Simon Binder 6ff4ce976a
Avoid duplicate code in view definition 2022-05-17 21:55:20 +02:00
Simon Binder 4d3d794f15
Alias Dart view columns and tables 2022-05-17 21:47:10 +02:00
westito ff4bc9be18 Fix drift_dev lint issue 2022-05-12 21:48:51 +02:00
westito 7330cf5d58 Add BigInt support to executors 2022-05-12 17:57:56 +02:00
westito 2b4bcc9864 Add BigInt support 2022-05-11 18:51:45 +02:00
Simon Binder 5e3de2fb7c
Remove lint around binary expr types 2022-05-10 20:46:30 +02:00
North101 5bf9b2a3aa
Fix not null when using JsonTypeConverter (#1820)
* Fix not null when using JsonTypeConverter

* Run dart format on writer

Co-authored-by: Alexander Wilde <alexander.wilde87@gmail.com>
Co-authored-by: Simon Binder <oss@simonbinder.eu>
2022-04-25 16:21:01 +02:00
Simon Binder 80c8c86031
Support drift-defined views schema tools (#1813) 2022-04-23 23:31:04 +02:00
Simon Binder 8479602023
Pick valid Dart names for views (#1814) 2022-04-23 16:06:11 +02:00
Simon Binder 5f6beb76ca
Support json type converters (#1811) 2022-04-22 23:38:41 +02:00
Simon Binder 2473cea469
Add `check()` to the Dart column builder (#1594) 2022-04-18 20:09:02 +02:00