db-knife
v1.0.1
Published
`load.ts` is a CLI tool that allows you to
Downloads
6
Readme
Introduction
load.ts
is a CLI tool that allows you to
- Load schemas from file system to a database
- Provide custom template to produce any command line operations
Note: Folder strucutre read by load.ts
is not configurable as of today. It should be like
<database-server>/<database-name>/schema.sql
There can be multiple databases (database-name
) inside a database-server
folder. database-schema-examples
repo follows this structure.
CLI Arguments Reference
| Arg | Required | Description |
| ------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| --folder | true | Load a folder containing database schemas (making them available in templates) assuming the following structure. <dbname>/schema.sql
. This is similar to database-schema-examples
repo |
| --db | true | Connection string of the database URL that will be parsed and made available as template args. |
| --subfolders | false | Comma separated, load selective folders from --folder |
| --template | false | Template to produce output. See Template Variables below. |
| --data | false | Also include data.sql
(defaults to false, i.e. load.ts
only picks schema.sql
) |
Template Variables
All examples are based on this connection string: sqlserver://localhost:1433;database=test;user=root;password=prisma;trustServerCertificate=true;encrypt=DANGER_PLAINTEXT
In all the examples below,
- Respective database is derived from the connection string provided in
--db
argument. - Folder structure is assumed to be similar to
database-schema-examples
https://github.com/prisma/database-schema-examples/tree/main/mssql
| Name | Description | Example |
| ----------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------- |
| 'db_cli' | Default CLI of the respective database | sqlcmd
for SQL Server |
| 'db_user_flag' | User flag of the respective database | -U
for SQL Server |
| 'db_pass_flag' | Password flag of the respective database | -P
for SQL Server |
| 'db_host_flag' | Host flag of the respective database | -S
for SQL Server |
| 'db_name_flag' | Database name flag of the respective database | -d
for SQL Server |
| 'db_file_flag' | File input flag of the respective database | -i
for SQL Server |
| 'db_eval_flag' | Command line query flag of the respective database | -Q
for SQL Server |
| 'db_quote' | Quote delimiter used by the respective database | '
for SQL Server |
| 'db_ignore_errors_flag' | Flag to prompt database CLI to ignore any errors of the respective database | |
| 'db_user' | User from the provided connection string | root
|
| 'db_pass' | Password from the provided connection string | prisma
|
| 'db_host' | Host from the provided connection string | localhost
|
| 'db_name' | Database name from the provided connection string | test
|
| 'db_schema' | Schema from the provided connection string | dbo
(for SQL Server) |
| 'file_path' | schema.sql
(or data.sql
) file path from the provided folder | Multiple values for each schema.sql
file in the given folder |