4
from pox.core import core
import pox.openflow.libopenflow_01 as of
import re
import datetime

from sqlalchemy import create_engine, ForeignKey
from sqlalchemy import Column, Date, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker


log = core.getLogger()



engine = create_engine('sqlite:///nwtopology.db', echo=False)
Base = declarative_base()
Session = sessionmaker(bind=engine)
session = Session()

如果我通过重新启动程序来重复调用最后四个 python 语句,它会对数据库的正确运行产生负面影响。?如果数据库已经存在,它会再次创建数据库吗?

4

1 回答 1

2

正如 sberry 所写 -create_engine通过重新运行相同的脚本多次调用和创建会话只会打开连接并参考此连接创建 SQLAlchemy 引擎对象。因此这样做不会创建新的 sqlite 数据库文件,也不会影响数据库的功能。

另外我建议确保您的代码始终在脚本末尾执行 session.close() 。这将确保所有更改(如果有)都将提交到数据库。通过更改,我的意思是您的脚本可能对数据库进行的任何更新/插入。

于 2013-05-02T14:28:06.143 回答