Checkout official @adminjs/sql for Postgres.
This is an unofficial AdminJS adapter which integrates SQL-based database into AdminJS.
Installation: yarn add adminjs-sql
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: [db],
resources: db.tables(),
// or
resources: [db.table('users'), db.table('posts'), db.table('comments')],
});
This supports ManyToOne relationship if you define a foreign key.
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
We use docker compose to run various databases for testing.
yarn test:up # docker compose up -d
yarn test
yarn test:down # docker compose down
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.
- MySQL
- MariaDB