Commit Graph

41 Commits

Author SHA1 Message Date
rijkvanzanten
3d795236da Remove confusing warning 2022-03-22 11:26:36 -04:00
Oreille
2d0c23d3c2 Prevent MySQL collation errors (#11069)
* Set charater set to utf8mb4

* Don't exit application when misconfigured collation

* Check all table and columns for inconsistencies with database default collation

* Tweak wording

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-02-03 17:49:39 -05:00
Rijk van Zanten
88c87f3920 Set CRDB options to avoid inconsistencies between vendors (#11193)
* Set correct CRDB options

* Add missing SETs to pool config for e2e

* How about now

* Better solution for the same problem
2022-01-20 20:18:22 -05:00
Michael Schramm
75b5f33727 Implement CockroachDB support (#10113)
* base changes for cockroachdb

* allow creating of tables

* allow deleting of fields

* allow deleting of tables

* rebase

* fix migrations

* bump knex-schema-inspector to 1.7.0

* Update package-lock

* Add cockroach to debugging docker-compose file

* Remove unused import

* Tweak name in example.env

* Force nullable primary keys in cockroach

* Tweak shares migration to run on cockroach

* Rename var for clarification

* suggestion for migration helper

* change to schema and update remaining migrations

* Remove custom cockroach schema in favor of sharing with pg

* Fix migrations for CockroachDB

* Hopefully fix Oracle migrations 🤞🏻

* Make ~~aiden~~ oracle happy

* Resolve branching paths in migrations

* Enable tests for cockroach

* Fix test config

* One more config change for good measure

* Adjust test to match cockroach's bigint auto-int structure

* Increase request timeout for mssql

* Update api/src/database/helpers/schema/types.ts

Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: Oreille <33065839+Oreilles@users.noreply.github.com>
Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>
2022-01-20 14:14:38 -05:00
Joe Innes
987442c03a Allow passing 'version' to Knex (#10960)
* Allow passing 'version' to Knex

* Exclude version from being passed into connection object
2022-01-10 17:23:35 +00:00
Rijk van Zanten
1481380775 Add warning when DB_CHARSET isn't explicitly configured (#10778)
* Add warning when DB_CHARSET isn't explicitly configured

Fixes #10556

* Improve messaging
2021-12-30 18:41:52 -05:00
Oreille
bc864d1f51 Improve helpers structure (#10052)
* Improve helpers structure

* Added DatabaseHelper base class

* Refactor index.ts
2021-12-01 15:08:24 -05:00
Oreille
cb22ddfa7c Added supported function to geometryHelper, added geometrySupport to serverinfo (#9290)
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-11-01 17:31:34 -04:00
Oreille
2895d50d32 Use node promisify. (#7841) 2021-09-07 15:53:52 -04:00
Rijk van Zanten
2abb1674ed Add environment variable to force-exclude tables from Directus (#7789) 2021-09-02 20:39:11 -04:00
rijkvanzanten
77c90363b1 Fix postgis check 2021-09-01 17:25:46 -04:00
Rijk van Zanten
88e0e9e269 Show a warning if PostGIS is missing (#7759)
* Show a warning if PostGIS is missing

* Remove sqlite-extensions flag

* Remove unused import
2021-09-01 15:34:33 -04:00
Nicola Krumschmidt
d64ca14348 Explicitly set catch parameters to any type (#7654)
This fixes not being able to build the repo due to type issues
introduced by the Typescript 4.4 option "useUnknownInCatchVariables",
which is enabled by default in strict mode.
2021-08-27 10:33:30 -04:00
rijkvanzanten
256139ffd2 Fix double drop relation 2021-08-19 17:11:49 -04:00
Rijk van Zanten
f6a7853e7d Rely on RETURNING when possible (#7259)
* WIP use returning clause instead of max from id

* Use returning where applicable, fallback to fetch

Fixes #6279
2021-08-07 00:21:50 +02:00
Rijk van Zanten
ce234f3165 Fix timezone problems in dateTime type (#7200)
* Disable useTZ option from MS SQL by default

* Fix recognition of OracleDB timestamp

* Smoothen out knex default in useTz for datatypes

* Fix timezone parsing for dateTime fields

* Remove unused import
2021-08-05 01:19:24 +02:00
Jay Cammarano
0b17fdcf81 Warn on Missing Migrations (#6580)
* added warn when migrations have not all been run

* fixed imports

* added better error handling

* Update api/src/database/index.ts

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>

* migration is its own file

* added custom migrations path

* Handle non-existing custom migrations folder

Co-authored-by: jaycammarano <jaycammarano@gmail.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2021-08-02 15:52:10 -04:00
Rijk van Zanten
87ab9b3dfa Improve error reporting on CLI bootstrap command (#6977)
* Show full DB error on bootstrap connection issue

* Show full DB error on bootstrap
2021-07-26 17:10:10 +00:00
Aiden Foxx
36ae50c4e5 Fix Oracle env error (#6225)
* Fix Oracle env error

Fix for #6224.

* Update index.ts
2021-06-14 10:42:55 -04:00
Rijk van Zanten
45730c6860 Resolve linter warnings (#6008) 2021-06-02 13:21:13 -04:00
Rijk van Zanten
77e00b7db4 Don't initialize database on file require (#6003) 2021-06-02 11:41:42 -04:00
Rijk van Zanten
02fc696c53 Fix env var validation in database loading step (#6002)
Fixes #5980
2021-06-02 11:17:50 -04:00
rijkvanzanten
801e868554 Fix remaining eslint errors
h/t @paescuj
2021-04-29 15:55:12 -04:00
Pascal Jufer
acd41eb0be Syntax fixes (#5367)
* Declare return types on functions

And a very few other type related minor fixes

* Minor syntax fixes

* Remove unnecessary escape chars in regexes
* Remove unnecessary awaits
* Replace deprecated req.connection with req.socket
* Replace deprecated upload with uploadOne
* Remove unnecessary eslint-disable-next-line comments
* Comment empty functions / catch or finally clauses
* Fix irregular whitespaces
* Add missing returns (null)
* Remove unreachable code
* A few logical fixes
* Remove / Handle non-null assertions which are certainly unnecessary (e.g. in
tests)
2021-04-29 12:11:43 -04:00
Rijk van Zanten
971a18c219 Database Error Abstraction (#4465)
* Start on database-error abstraction layer

* Add SQLite error abstraction

* Enable SQLite foreign key support

* Cleanup sqlite dialect slightly

Does it matter? Not really!

* Add MySQL error abstraction

* WIP Almost done with MSSQL

* Add correct error handling for MS SQL

* Fix mysql errors by not relying on value order

* Don't rely on sql in postgres exception translation

* Fix sqlite error parsing

* Remove foreign key constraint from activity to collections

A collection can be DB-only, but we still want to track activity for non-meta collections

* Translate error on update as well
2021-03-10 17:16:15 -05:00
Rijk van Zanten
97dcdad847 OracleDB baby steps (#4464)
* Allow external connections in oracle debug

* Fix oracle overview query

* Use correct alive check for oracle

* Remove unused import

* Validate correct env vars for oracle
2021-03-10 16:58:49 -05:00
Nicola Krumschmidt
08293b8570 Update Knex to version 0.95.0 (#4374)
* Update Knex to version 0.95.0

* Fix formatting in schema dialects

* Fix Knex imports

* Update package-lock

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-03-03 19:37:44 -05:00
rijkvanzanten
142b250c8d Use pino error instead of fatal
Fatal throws flushing error when using 'pretty' log style
2021-02-23 11:29:37 -05:00
rijkvanzanten
435d6ec84a Validate DB_CLIENT env var before creating DB connection
Fixes #3556
2021-02-23 11:28:56 -05:00
rijkvanzanten
81bb7cfa53 Allow configuring the connection pool size
Closes #3165
2021-02-22 20:19:08 -05:00
Rijk van Zanten
b7d87e581a System permissions for app access (#4004)
* Pass relations through schema, instead of individual reads

* Fetch field transforms upfront

* Fix length check

* List if user has app access or not in accountability

* Load permissions up front, merge app access minimal permissions

* Show app access required permissions in permissions overview

* Show system minimal permissions in permissions detail

* Fix app access check in authenticate for jwt use

* Fix minimal permissions for presets

* Remove /permissions/me in favor of root use w/ permissions

* Fix logical nested OR in an AND

* Use root permissions endpoint with filter instead of /me

* Allow filter query on /permissions

* Add system minimal app access permissions into result of /permissions

* Remove stray console log

* Remove stray console.dir

* Set current role as role for minimal permissions

* Fix no-permissions state for user detail

* Add filter items function that allows altering existing result set
2021-02-11 12:50:56 -05:00
rijkvanzanten
e3d289b7a4 Add CLI bootstrap command 2020-12-02 15:27:54 -05:00
rijkvanzanten
0002393486 Allow nested objects in env vars
FE: DB_SSL__CA=example
2020-11-20 15:19:38 -05:00
rijkvanzanten
528112314d Remove outdated tests, fix imports 2020-11-09 12:29:01 -05:00
rijkvanzanten
ad56b8b556 Rename schema to specs, add schema package 2020-11-09 11:19:03 -05:00
rijkvanzanten
b02c2d85d5 Add more descriptive error on startup on empty DB 2020-11-04 17:28:29 -05:00
rijkvanzanten
7185cd48cb Allow searchPath / connection string in PG
Fixes #676
2020-10-15 17:44:50 -04:00
rijkvanzanten
33192e4ab3 Use pino for mysql logging 2020-08-04 16:39:33 -04:00
rijkvanzanten
cf5a49a9f5 Add validateDBConnection function 2020-08-04 13:16:14 -04:00
rijkvanzanten
2252d5a35f Use centralized env export with validator function 2020-08-04 13:10:49 -04:00
rijkvanzanten
bde7069cce Move api into api subdirectory 2020-07-29 11:22:56 -04:00