我正在使用带有Ruby和ActiveRecord的sqlite3。我可以看到数据库日志生成SQL语句,我看到生成的DB日志文件 - 但是,我无法找到表(.database只显示main和temp作为数据库)。
Ruby连接信息:
from openerp import models, fields, api, _
class example_class_one(models.Model):
_name = "example.class.one"
name = fields.Char('Name')
value = fields.Float('Value')
example_class_one()
class example_class_two(models.Model):
_name = "example.class.two"
name = fields.Char('Name')
example_class_ones = fields.Many2many('example.class.one',string='Example Class Ones')
@api.one
def test(self):
#CREATES SOME example_class_ones and assign them to self
#MANIPULATE SOME example_class_ones and save them
#DELETE SOME example_class_ones from self
pass
example_class_two()
管理模型和ActiveRecord部分:
ActiveRecord::Base.establish_connection(
:adapter => 'sqlite3',
:host => "localhost",
:database => 'test1.db'
)
对我可能做错了什么的任何想法?在上面的例子中,我认为我没有选择内存数据库。
答案 0 :(得分:0)
首先,确保在执行任何其他操作之前在控制台中运行rake db:migrate
。这应该创建表。您将看不到包含表格的单独文件,其中所有文件都在test1.db
内。我建议使用.sqlite3
扩展程序,因此请使用test1.sqlite3
。
另外,我建议使用config/database.yml
配置数据库,而不是使用ActiveRecord手动建立连接。
也就是说,尝试从您的shell中启动rails dbconsole
并运行.tables
rails dbconsole
sqlite3>.tables
如果你无法使用它,请使用你的rails console
,并检查你的模型,看看它们是否可以访问数据库:
rails c
Admin.create(email: "test@example.com", name: "Test from Console")
Admin.all
=> # Should return the test entry
这应该让你与桌面互动并阅读。每个表都没有单独的文件。