1.1.2 • Published 2 years ago

adminjs-sql v1.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

adminjs-sql NPM version

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.

  1. Clone this repository.
git clone https://github.com/wirekang/adminjs-sql
yarn install
yarn build
  1. Setup example project.
cd example/
yarn install
  1. Run mysql:latest in docker container. Checkout docker-compose.yml
yarn up
  1. Run example app.
yarn start


# Generating samples...
# Inserting samples...
# adminjs-sql example app is under http://localhost:33300
  1. 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!!

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.0

2 years ago