Ruby on Rails
migration (Version #1)

CREATE TABLE users (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
nick VARCHAR NOT NULL,
name VARCHAR,
password VARCHAR NOT NULL,
modified_at DATETIME,
created_at DATETIME,
access DATETIME,
PRIMARY KEY
);

CREATE TABLE roles (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR NOT NULL,
info VARCHAR,
PRIMARY KEY
);

CREATE TABLE permissions (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR NOT NULL,
info VARCHAR NULL,
PRIMARY KEY
);

CREATE TABLE roles_users (
user_id INTEGER UNSIGNED NOT NULL,
role_id INTEGER UNSIGNED NOT NULL,
INDEX roles_users_FKIndex1(role_id),
INDEX roles_users_FKIndex2(user_id),
FOREIGN KEY
REFERENCES roles(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY
REFERENCES users(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);

CREATE TABLE permissions_roles (
role_id INTEGER UNSIGNED NOT NULL,
permission_id INTEGER UNSIGNED NOT NULL,
INDEX permissions_roles_FKIndex1(permission_id),
INDEX permissions_roles_FKIndex2(role_id),
FOREIGN KEY
REFERENCES permissions(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY
REFERENCES roles(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);

CREATE TABLE users (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
nick VARCHAR NOT NULL,
name VARCHAR,
password VARCHAR NOT NULL,
modified_at DATETIME,
created_at DATETIME,
access DATETIME,
PRIMARY KEY
);

CREATE TABLE roles (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR NOT NULL,
info VARCHAR,
PRIMARY KEY
);

CREATE TABLE permissions (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR NOT NULL,
info VARCHAR NULL,
PRIMARY KEY
);

CREATE TABLE roles_users (
user_id INTEGER UNSIGNED NOT NULL,
role_id INTEGER UNSIGNED NOT NULL,
INDEX roles_users_FKIndex1(role_id),
INDEX roles_users_FKIndex2(user_id),
FOREIGN KEY
REFERENCES roles(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY
REFERENCES users(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);

CREATE TABLE permissions_roles (
role_id INTEGER UNSIGNED NOT NULL,
permission_id INTEGER UNSIGNED NOT NULL,
INDEX permissions_roles_FKIndex1(permission_id),
INDEX permissions_roles_FKIndex2(role_id),
FOREIGN KEY
REFERENCES permissions(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY
REFERENCES roles(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);