walrusでデータベースアプリケーションを作成する場合、
最初にデータベースのテーブルを設計しスキーマを作成します。
スキーマとは、walrus独自のフォーマットでテーブルの仕様を記述したものです。
# sample Walrus schema file (dbtut.wsc)
DataBase tutorialdb
Table Shohin -- long_name=商品マスター
IntField shohin_code -- primary_key
VarcharField shohin_name -- size=20
IntField unit_price
Table Tanto -- long_name=担当者マスター
IntField tanto_code -- long_name=担当者コード
VarcharField tanto_name -- long_name=担当者名 size=20
IntField ruikei_num -- long_name=累計数量
IntField ruikei_kin -- long_name=累計金額
Table Uriage
DateTimeField dt
IntField shohin_code
.bind_to_field Shohin shohin_code
IntField tanto_code
.bind_to_field Tanto tanto_code
IntField num
次のようなOBAQスクリプトを実行します。
%require obaq/obaqmodel
%require obaq/sql
%import dbtut.wsc
DBConnection
dbname=$LOGNAME
auto_connect=false
SchemaCommandSet
DropDB
CreateDB
CreateTables
CreateDocument
template=template.html
output=dbspec.html
このスクリプトによって、以下の処理が実行されます。
データベースの削除、再作成(DropDB, CreateDB)
PostgreSQLのcreatedb,dropdbコマンドでデータベースを作成します。
テーブル作成(CreateTables)
createtableを実行し、テーブルを作成します。
ドキュメント作成(CreateDocument)
次のようなHTML形式のテーブル仕様書を作成します。
tutorialdb
Shohin
| 項目名称 |
項目名 |
型 |
備考
|
| shohin_code |
shohin_code |
integer |
|
| shohin_name |
shohin_name |
varchar(20) |
|
| unit_price |
unit_price |
integer |
|
担当者マスター
| 項目名称 |
項目名 |
型 |
備考
|
| 担当者コード |
tanto_code |
integer |
|
| 担当者名 |
tanto_name |
varchar(20) |
|
| 累計数量 |
ruikei_num |
integer |
年度の初めからの累計数量です。 |
| 累計金額 |
ruikei_kin |
integer |
年度の初めからの累計金額です。 |
Uriage
| 項目名称 |
項目名 |
型 |
備考
|
| dt |
dt |
datetime |
|
| shohin_code |
shohin_code |
integer |
|
| tanto_code |
tanto_code |
integer |
|
| num |
num |
integer |
|