え、まだExcelで在庫管理してるの?PostgreSQL+ServBayで作るWMSデータ中枢!
🚚 WMSって、結局Excelでいいんじゃないの?
…そう思っていた時期が私にもありました。
でも、SKUが増えてくると、こうなりませんか?
- 「え、A倉庫にこの商品、あと何個残ってたっけ?」
- 「この受注、出荷済みになってる?まだ?」
- 「ERPと在庫が合わないのはなんで!?」
そのたびにExcelを開いてCtrl+Fして、タブを切り替えて、気がついたら昼休みが終わってた…なんて日常、卒業しませんか?
この記事では、PostgreSQL × Flask × ServBay の組み合わせで、
誰でもすぐに使える「ミニWMS API」を作る方法を紹介します。
しかも全部ローカル開発環境でOK。
Dockerの学習コストも、クラウドの月額料金もいりません。
🧱 ステップ①:まずは「データ金庫」をPostgreSQLで作ろう
在庫や受注のデータ、Excelじゃなくてデータベースに入れましょう。
PostgreSQLはオープンソース&高機能、WMSみたいな中小規模の業務系データにはぴったりです。
-- 在庫テーブル
CREATE TABLE stocks (
id SERIAL PRIMARY KEY,
sku VARCHAR(50) UNIQUE NOT NULL,
quantity INTEGER NOT NULL,
location VARCHAR(50) NOT NULL
);
-- 受注テーブル
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
order_number VARCHAR(50) UNIQUE NOT NULL,
sku VARCHAR(50) NOT NULL,
quantity INTEGER NOT NULL,
status VARCHAR(20) NOT NULL
);
SKU単位で在庫を管理し、受注データとひも付けられる構成にしています。
🔗 ステップ②:Python FlaskでAPIを作って、在庫・受注を外部連携!
WMSやERPと連携するには、データを外に出せるAPIが必要です。
ここではPythonの軽量フレームワークFlaskとSQLAlchemyを使って、RESTful APIを爆速構築します。
@app.route('/stocks', methods=['GET'])
def get_stocks():
stocks = Stock.query.all()
return jsonify([{'sku': s.sku, 'quantity': s.quantity, 'location': s.location} for s in stocks])
たったこれだけで、/stocks
を叩けばJSONで在庫一覧が返ってきます。
ERPやTMSからもアクセスできるようになれば、人手のExcel確認とはおさらばできますね。
💻 ステップ③:ServBayで「開発環境の壁」を突破しよう
「でも、PostgreSQLとかFlaskとか、ローカルで動かすの面倒くさそう…」
そんなあなたにおすすめなのが、ServBay。
macOS向けに作られたローカル開発環境ツールで、PostgreSQL・PHP・Redis・Nginxなどが全部入り。
GUIから一発起動で、DockerやHomebrewの泥沼とは無縁です。
✅ ServBayでやること:
- ServBayを起動
- PostgreSQLをワンクリックで起動
- DBeaverなどで
wms_db
データベース作成 - Flaskアプリを起動
-
curl http://localhost:5000/stocks
でAPI動作確認
🤔 Dockerと何が違うの?
項目 | Docker | ServBay |
---|---|---|
初期設定 | 複雑、学習コスト高 | GUIでワンクリック起動 |
ポート競合 | よくある | 自動割り当てでストレスフリー |
複数サービス管理 |
docker-compose 必要 |
ServBay内で一括管理 |
初学者のとっつきやすさ | やや難 | 直感的で簡単 |
🧩 おわりに:まずは一枚の在庫表から始めよう
WMSやERPの導入、AIやRPAの話の前に、まずは「構造化された在庫データ」が必要です。
- PostgreSQL:信頼性のあるデータストア
- Flask:軽量で柔軟なAPI構築
- ServBay:ローカル開発のストレスをゼロに
この3つを組み合わせれば、あなたの「脱Excel」が一歩近づきます。
📌 次回は、「SQLでの絞り込み検索やページング処理」など、APIの実用性をさらに高めるテクニックを紹介予定です!
Discussion