我建立一个网络应用程序,它利用SQLAlchemy的存储和检索数据。我的目标是在后台计划每天都在更新SQLite数据库的应用程序正在不断运行。我目前的做法可以作为以下几点:
initializedb.py
:SQLite数据库首先被初始化,并从脚本构建localhost:6543
访问我的应用程序将持续运行24/7,使用户可以访问此列表时。因为这是我从初始化数据库中的文本文件,不断更新,我希望能够为日常以及更新数据库。我的主要问题是:
我怎么会自动更新使用SQLAlchemy的金字塔和每天的数据库?
如果代码更新数据库定期从应用程序单独运行一个脚本完成,还是应该在金字塔代码本身来完成,比如在views.py
?
只需使用cron。每天运行你的initialise一次代码重新创建数据库。
如果您需要更复杂,您可以使用celery更先进的东西。但我认为cron将是最好的地方开始。
你应该尝试只有一个数据副本。这听起来像你的文本文件,并“进口”他们到数据库中。但它听起来像是你的文本文件是由其他进程定期更新。
另一种方法是使数据库中的数据的规范版本。你可以在你的应用程序创建一个管理界面来更新数据库。
如果数据通过自动处理进来那么也许你可以创建一个导入脚本采取新的数据。
这可以通过命令行脚本来完成。只是这种东西添加到您的setup.py
entry_points = """\
[paste.app_factory]
main = myapp:main
[console_scripts]
some_script = myapp.scripts.script:main
another_script = myapp.any_module:some_function
"""