mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
* Move data types to data package * Setup boilerplate for driver * Add basic data manager class * Rename "datastore" to "store" * Rename "fieldNodes" -> "nodes" Opinions incoming! * Setup manager basics * fix pnpm-lock file * Regenerate pnpm-lock file with pnpm v8.5 * add flowchart diagram * revert flowchart diagram * Add a basic data driver for PostgreSQL (#18808) * add very basic query builder * Start new data-sql package * Start noodling * Results of friday collab session * add tests and separate function * add flowchart diagram * fix tests * dependency diagram and fix * add tsdocs * fix query builder test * small refactoring * add underlying error in error message * add tests for escape function * add check if pool has a client to query the db * revert tests, query func handles clients itself * Update packages/data-sql/package.json * Resolve comments * Pass query * Add tsup * Remove compileroptions with tsup usage * Split up converter * Update graph --------- Co-authored-by: rijkvanzanten <rijkvanzanten@me.com> * Improvement: Add albanian language translation (#18810) * Add albanian to available languages * Add me as contributor (CLA) * Create fair-clouds-exercise.md --------- Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * Add extra type check in apply-diff (#18783) * Fix content filter between (#18821) * fixed incorrectly typecast value * Create popular-toes-tap.md * Created new contribution pages for non-code contributions (#18820) * Community * Fixed copy in community page * Sponsrship and advocacy * Clarified 80/20 rule in support page * Reworked contribs intro * Contributing sidebar * Remove backing directus page * Translations updates * Spell check --------- Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> * Reuse S3 client and increase maxSockets (#18799) * Reuse S3 client and increase maxSockets * Update test to check for timeouts and non-2xx responses * Create beige-olives-beam.md * Fix unit tests * Update packages/storage-driver-s3/src/index.ts Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * Update .changeset/beige-olives-beam.md Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> --------- Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * Switch to tsup builds * Don't require connect/disconnect * Add test for engine * Fix tests * Cleanup tests * Update tests * Add destroy method * Call register on register * Tweak readme to drop connect * Add changeset * Wrapper function for random identifiers (#18870) * add util function in data for random identifiers * move wrapper into random package * fix docs typo Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * Rename to identifier and add test --------- Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> Co-authored-by: rijkvanzanten <rijkvanzanten@me.com> * Update packages/data/readme.md Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> --------- Co-authored-by: Jan Arends <jan.arends@mailbox.org> Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> Co-authored-by: Nino Gjoni <49320058+ninogjoni@users.noreply.github.com> Co-authored-by: Brainslug <br41nslug@users.noreply.github.com> Co-authored-by: Kevin Lewis <kvn@lws.io> Co-authored-by: ian <licitdev@gmail.com>
1.3 KiB
1.3 KiB
@directus/data
Warning
This is a work in progress. Nothing is expected to work yet.
Installation
npm install @directus/data
Usage
Create a new manager:
import { DataEngine } from '@directus/data';
const data = new DataEngine();
Register drivers:
import { DataEngine } from '@directus/data';
import { DataDriverPostgres } from '@directus/data-driver-postgres';
const data = new DataEngine();
await data.registerStore(
'postgres',
new DataDriverPostgres({
connectionString: 'postgresql://root:password@localhost/mydb',
})
);
Query data:
import { DataEngine } from '@directus/data';
import { DataDriverPostgres } from '@directus/data-driver-postgres';
const data = new DataEngine();
await data.registerStore(
'postgres',
new DataDriverPostgres({
connectionString: 'postgresql://root:password@localhost/mydb',
})
);
await data.query({
root: true,
store: 'postgres',
collection: 'articles',
nodes: [
{
type: 'primitive',
field: 'id',
},
],
});
Flow
This visualizes the general data flow regarding data.
graph LR;
api --> data
data --> sql-adapter
data --> no-sql-adapter
sql-adapter ---> db1[(datastore)]
sql-adapter --- data-sql
no-sql-adapter ---> db2[(datastore)]