MySQL
/MariaDB
adapter for CAP Framework, this module is heavily inspired by the cds-pg module.
firstly, install npm packages
npm i cds-mysql mysql2
setup the mysql
database driver for cds -> edit the package.json
> cds
node (or .cdsrc.json
)
{
"requires": {
"db": {
"kind": "mysql"
}
}
}
create an .env
file and put that into your local CDS project, then fill the database credential
CDS_REQUIRES_DB_CREDENTIALS_HOST=127.0.0.1
CDS_REQUIRES_DB_CREDENTIALS_PORT=3306
CDS_REQUIRES_DB_CREDENTIALS_DATABASE= # db name
CDS_REQUIRES_DB_CREDENTIALS_USER= # db user
CDS_REQUIRES_DB_CREDENTIALS_PASSWORD= # db user pwd!
now, start the cds server (npx cds-serve
), everything is ready!
Tip
read more about how to config database credential.
Tip
read more about how to setup database user.
in addition, please check cap-mysql-sflight to get the mysql
version of official cap-sflight
example, and it works well.
please read the full long version Advanced Documentation to get more technical details.
- fundamental
INSERT
/UPDATE
/DELETE
/SELECT
query support- support
UPSERT
byINSERT ... ON DUPLICATE KEY UPDATE
statement
- support
- deep insert for association/composition
- deep create/update/query/delete test case
-
fiori
draft support-
draftPrepare
/draftEdit
/draftActivate
test case
-
-
temporal
aspect, but not support time-travel query -
incrementID
auto incremental key aspect -
preDelivery
CSV aspect- migrate CSV on-demand (with option)
- CSV migration with hash check
- care entity dependencies - the order of CSV import
- full text search
- schema migration optimization (ignore drop in some case)
- ignore column length reduce and with warning
- model version, only incremental migration -
transparent migration
-
@Core.Media
attachment support - localized data
- multi tenancy
- deploy model on-fly
- create database on-demand
- user permission check
- experimental
@sap/cds-mtxs
support -> document - behavior maybe changed later.- extensibility (
pull
/push
)
- extensibility (
-
$expand
navigation -
$filter
with canonical functions (concat
/contains
/substring
) - test with
mariadb 10
,mysql 5/8
- initial data provision by
CSV
- better migration type/column/name adaption
- mysql index
- better error for not supported elements
- automatically schema sync (when connection pool provision)
- SELECT
FOR UPDATE
/LOCK IN SHARE MODE
-
NOWAIT
support -
SKIP LOCKED
support
-
- better E2E document/sample - cap-mysql-sflight
- adapt new cds-dbs layer
- real stream adoption for binary