adminjs-sql
v1.1.2
Published
Raw SQL adapter for AdminJS without ORM
Downloads
16
Maintainers
Readme
adminjs-sql
This is an inofficial AdminJS adapter which integrates SQL-based database into AdminJS.
Installation: yarn add adminjs-sql
Usage
The plugin can be registered using standard AdminJS.registerAdapter
method.
import { Adapter } from 'adminjs-sql';
import AdminJS from 'adminjs';
AdminJS.registerAdapter(Adapter);
After registration, you should call Adapter.init(client, connectionOptions)
to parse table information from running database.
// import { Adapter } from 'adminjs-sql';
// ...
const db = await Adapter.init('mysql2', {
host: DB_HOST,
port: DB_PORT,
user: DB_USER,
password: DB_PASSWORD,
database: DB_NAME,
});
After initialization, you can register resources. db.tables()
to register ALL tables in database. Or you can db.table(tableName)
to register specific table.
const adminJs = new AdminJS({
databases: [database],
resources: db.tables(),
// or
resources: [db.table('users'), db.table('posts'), db.table('comments')],
});
ManyToOne
This supports ManyToOne relationship if you define a foreign key.
Example App
You can run example app with docker.
- Clone this repository.
git clone https://github.com/wirekang/adminjs-sql
yarn install
yarn build
- Setup example project.
cd example/
yarn install
- Run mysql:latest in docker container. Checkout docker-compose.yml
yarn up
- Run example app.
yarn start
# Generating samples...
# Inserting samples...
# adminjs-sql example app is under http://localhost:33300
- After enjoying the example, you can clean down MySQL server.
yarn down
How It Works
adminjs-sql
collects information about tables and columns from INFORMATION_SCHEMA and converts to adminjs
. This project uses Knex Query Builder to generate SQL string.
Supported Databases
- MySQL
- MariaDB
Todo
[ ] Support Postgres.
[ ] Add unit testing.
[ ] Add more complex example app.
Contributions are welcome!!