Pylonsで作ったアプリの初期化にはwebsetup.pyをつかう。
コマンドは
paster setup-app development.ini
これね。
websetup.pyのなかみはこんなかんじ

# -*- coding: utf-8 -*-
"""Setup the ndi application"""
import logging

import pylons.test

from sqlalchemy import *
from ndi.config.environment import load_environment
from ndi.model.meta import Session, Base

log = logging.getLogger(__name__)

def setup_app(command, conf, vars):
    """Place any commands to setup ndi here"""
    # Don't reload the app if it was loaded under the testing environment
    if not pylons.test.pylonsapp:
        load_environment(conf.global_conf, conf.local_conf)

    # Create the tables if they don't already exist
    Base.metadata.create_all(bind=Session.bind)

    #あとでimportの後は*にするが定義終わってないのもあるため
    #作成途中なのでいっこずつ付け足しては投入しております
    from ndi.model.member import BaseUser,NdiUser
    from ndi.model.master import Server,Nation,OptionSkill,SeaAreaL,SeaAreaS,Port

    #テーブル作成
    BaseUser.metadata.create_all(bind=Session.bind)
    NdiUser.metadata.create_all(bind=Session.bind)

    Server.metadata.create_all(bind=Session.bind)
    Nation.metadata.create_all(bind=Session.bind)
    OptionSkill.metadata.create_all(bind=Session.bind)
    SeaAreaL.metadata.create_all(bind=Session.bind)
    SeaAreaS.metadata.create_all(bind=Session.bind)
    Port.metadata.create_all(bind=Session.bind)


    from ndi.model import meta

    #マスタ系のデータ入れてくお
    #Server
    try:
        meta.Session.add(Server(id=1,name='notos'   ))
        meta.Session.add(Server(id=2,name='zephyros'))
        meta.Session.add(Server(id=3,name='euros'   ))
        meta.Session.add(Server(id=4,name='boreas'  ))
        meta.Session.commit()
    except Exception,e:
        print 'Abort:Server'
        meta.Session.rollback()

以下略。このあと延々データ投入が続く。
親の仇みたいに定義書きまくってpaster setup-app development.iniすると、画面が滝のようになってきもちいいいいいいいい
あまりに楽しいので、DBのテーブル全部消す→paster setup-app development.ini→気持ちいいいいいい→DBのテー(略
とかやってます。作業すすみません。進めよ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です