2016-11-07

Adonis Tutorial : 모델 생성



  • Admin 모델을 생성한다.
    $ node ace make:model Admin
    xyz/app/model/Admin.js 파일이 생성된다.
  • 마이그레이션 생성하기
    $ node ace make:migration admins --create=admins
    create: xyz/database/migrations/1478150019520_admins.js
  • xyz/database/migrations/1478150019520_admins.js 파일을 열어서 아래처럼 수정한다.
    'use strict'
     
    const Schema = use('Schema')
     
    class AdminsTableSchema extends Schema {
     
      up () {
        this.create('admins', (table) => {
          table.increments()
          table.string('userid').unique()
          table.string('password').notNullable()
          table.string('nick').unique()
        })
      }
     
      down () {
        this.drop('admins')
      }
     
    }
     
    module.exports = AdminsTableSchema
  • 마이그레이션을 실행하여 SQLite DB파일과 admin 테이블을 생성한다.
    $ cd xyz
    $ node ace migration:run
    이제, xyz/database/development.sqlite 파일이 생성되었다.
  • 다음과 같이 테이블이 생성된 것도 볼 수 있다.
    xyz\database> sqlite3 development.sqlite
    SQLite version 3.15.0 2016-10-14 10:20:30
    Enter ".help" for usage hints.
    sqlite> .schema
    CREATE TABLE "adonis_schema" ("id" integer not null primary key autoincrement, "name" varchar(255), "batch" integer, "migration_time" datetime);
    CREATE TABLE "admins" ("id" integer not null primary key autoincrement, "userid" varchar(255), "password" varchar(255) not null, "nick" varchar(255));
    CREATE UNIQUE INDEX "admins_userid_unique" on "admins" ("userid");
    CREATE UNIQUE INDEX "admins_nick_unique" on "admins" ("nick");
    sqlite> insert into admins(userid, password, nick) values('testid1', 'passwd1', 'nick1');
    sqlite> insert into admins(userid, password, nick) values('testid2', 'passwd2', 'nick2');
    sqlite> insert into admins(userid, password, nick) values('testid3', 'passwd3', 'nick3');
    sqlite> insert into admins(userid, password, nick) values('testid4', 'passwd4', 'nick4');
    sqlite> insert into admins(userid, password, nick) values('testid5', 'passwd5', 'nick5');
    sqlite> select * from admins;
    1|testid1|passwd1|nick1
    2|testid2|passwd2|nick2
    3|testid3|passwd3|nick3
    4|testid4|passwd4|nick4
    5|testid5|passwd5|nick5
    sqlite> .quit

댓글 없음:

댓글 쓰기