Sequelizeを使ってNode.jsでMySQLテーブルを作成する方法
Sequelizeとは
Sequelizeは、PromiseベースのNode.js向けORM(Object-Relational Mapping)ライブラリです。PostgreSQL、MySQL、MariaDB、SQLite、Microsoft SQL Serverなど、主要なリレーショナルデータベースに幅広く対応しており、SQLを直接書かずにJavaScriptだけでデータベース操作を行えます。
Sequelizeの主な機能は以下の通りです。
トランザクションサポート
リレーション(モデル間の関連付け)
Eager Loading / Lazy Loading(即時読み込み・遅延読み込み)
リードレプリケーション など
SequelizeでMySQLに接続する
まず、Sequelizeを使ってNode.jsとMySQLの間に接続を確立する必要があります。事前に以下のコマンドで必要なパッケージをインストールしておきましょう。
npm install sequelize mysql2
接続が確立できたら、次の3つのファイルを作成します。それぞれ指定されたフォルダ構成で配置してください。
SequelizeDemo > app.js
アプリケーションのエントリポイントとなるルートファイルです。実際の処理ロジックを記述します。SequelizeDemo > utils > database.js
MySQLへの接続情報をすべて管理するファイルです。SequelizeDemo > models > user.js
モデル(テーブル)の定義情報を格納するファイルです。
実装例
1. database.js の設定
データベース名、ユーザー名、パスワードなど、ご自身の環境に合わせて接続情報を入力してください。
const Sequelize = require('sequelize');
const sequelize = new Sequelize(
'YOUR_DB_NAME', // データベース名
'YOUR_DB_USER_NAME', // ユーザー名(例: root)
'YOUR_DB_PASSWORD', // パスワード
{
dialect: 'mysql',
host: 'localhost'
}
);
module.exports = sequelize;2. user.js の設定
このファイルでは、モデルとテーブルのマッピングを定義します。カラム名やデータ型、制約をここで指定できます。
const Sequelize = require('sequelize');
const sequelize = require('../utils/database');
const User = sequelize.define('user', {
// カラム1:user_id
user_id: {
type: Sequelize.INTEGER, // 整数型
autoIncrement: true, // 自動採番
allowNull: false, // NULLを許可しない
primaryKey: true // 主キーとしてユーザーを一意に識別
},
// カラム2:name
name: { type: Sequelize.STRING, allowNull: false },
// カラム3:email
email: { type: Sequelize.STRING, allowNull: false },
// タイムスタンプ
createdAt: Sequelize.DATE,
updatedAt: Sequelize.DATE,
});
module.exports = User;3. app.js の設定
モデルをもとに実際のテーブルを作成するには、sync()メソッドを使用します。用途に応じて2種類の使い分けが可能です。
sync() メソッド:テーブルが存在しない場合のみ作成します。すでに存在する場合は何もせず、既存のテーブルは上書きされません。
sync({ force: true }) メソッド:テーブルが存在しなければ新規作成し、すでに存在する場合は一度削除してから再作成します。既存データは失われるため注意してください。
// データベース接続の読み込み
const sequelize = require('./database');
// ユーザーモデルの読み込み
const User = require('./models/user');
// user.jsで定義したすべてのテーブルを作成
sequelize.sync();
// 動作確認用:user.jsを変更してから実行すると、
// 既存テーブルが上書き(再作成)されることを確認できます。
// sequelize.sync({ force: true });実行結果
プログラムを実行すると、コンソールには次のような出力が表示されます。
C:\Users\SequelizeDemo> node app.js Executing (default): CREATE TABLE IF NOT EXISTS `users` (`user_id` INTEGER NOT NULL auto_increment , `name` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NOT NULL, `createdAt` DATETIME, `updatedAt` DATETIME, PRIMARY KEY (`user_id`)) ENGINE=InnoDB; Executing (default): SHOW INDEX FROM `users`
実行後、MySQL側でデータベースを確認してみてください。usersテーブルが自動的に作成されていることがわかります。これで、Sequelizeを通じてNode.jsアプリケーションからMySQLのテーブルを自由に操作できるようになりました。
-
【Spring Boot】HibernateでMySQLのテーブルを自動作成する方法
Spring BootとHibernateを組み合わせると、エンティティクラスから自動的にMySQLのテーブルを作成できます。本記事では、application.propertiesの設定だけでテーブルを自動生成する手順を、実際のコード例とともにわかりやすく解説します。1. application.propertiesの設定テーブルを自動作成するには、まずapplication.propertiesに以下の1行を追加します。spring.jpa.hibernate.ddl-auto=updateddl-auto=updateを指定すると、アプリケーションの起動時にHibernateがエンティテ
-
TkinterのTreeviewウィジェットを使ってテーブルを作成する方法
テーブルとは、データを行と列の形式で整理して表示する要素です。アプリケーションにGUIのテーブルを実装し、NumPyやPandas、Matplotlibなどの他のPythonライブラリと組み合わせてデータを操作するケースを考えてみましょう。TkinterにはTreeviewウィジェットが用意されており、これを使用すると表を描画してその中にデータを挿入することができます。Treeviewウィジェットは、Treeview(parent, column, **options)というコンストラクタを定義することで構築できます。サンプルコード# 必要なライブラリをインポート from tkinter i