带有角膜宝石和 sqlite 的 Sinatra 项目。耙分贝:迁移不工作。已创建架构但无法生成测试数据

Posted

技术标签:

【中文标题】带有角膜宝石和 sqlite 的 Sinatra 项目。耙分贝:迁移不工作。已创建架构但无法生成测试数据【英文标题】:Sinatra project with corneal gem and sqlite. Rake db:migrate not working. Schema created but cant make test data 【发布时间】:2021-06-29 14:25:26 【问题描述】:

我已经使用角膜宝石和 sqlite 设置了这个 Sinatra“待办事项”项目。我已经创建了迁移并运行 rake db:migrate 并且可以看到适当的文件,例如已经制作了模式和开发/测试数据库文件。但是,当我进入控制台并尝试查找“users.all”或创建用户时,我无法继续。尤其是在运行 User.create(...) 时,返回的错误是 -- ActiveRecord::StatementInvalid: Could not find table 'users' from /Users/dwightnodolf/.rvm/gems/ruby-2.6.1/gems/activerecord -6.1.3.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:346:in `table_structure' -- 当我尝试删除数据库以重新迁移时,我收到此错误——数据库'db/development.sqlite3'不存在数据库'db/test.sqlite3'不存在。 -- 阅读文档时没有弹出任何线索,Stack 上也没有大量类似问题,至少关于如何使这些东西对齐。

【问题讨论】:

这个角膜宝石中的大部分东西已经 5 年没有更新了,你确定这是 Sinatra 的方式吗? 看起来你也有版本问题(绝对不是唯一的问题)。角膜的主分支需要'activesupport', '~> 5.0',但您现在使用的是6.1.3? 这两个 cmets 都启发了我使用 Rails 构建。它开始是一个角膜之旅,但它似乎是一个虚假的经济,它已经过时了。谢谢大家的鼓励 【参考方案1】:

我也有同样的问题,尤其是关于你的第一部分问题。 我指的是:

尤其是在运行 User.create(...) 时,返回的错误是 -- ActiveRecord::StatementInvalid: Could not find table 'users' from

对于您问题的这个特定部分,我浏览了 activerecord sinatra 文档sinatra doc

正如解释的那样,我已经在我的文件主应用程序中添加了register Sinatra::ActiveRecordExtension

在此之后,我能够访问表,写读...

【讨论】:

请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。

以上是关于带有角膜宝石和 sqlite 的 Sinatra 项目。耙分贝:迁移不工作。已创建架构但无法生成测试数据的主要内容,如果未能解决你的问题,请参考以下文章

与Sinatra一起设计

使用 ruby​​、Sinatra 和 Mandrill 如何从 api 调用访问单个元素并打印为 HTML?

Sinatra 应用程序中的“Rake 无法加载此类文件”错误

带有 sinatra 的 Mandrill API 电子邮件队列

将带有 Sinatra 2.0.0beta2 的 Rails 5 应用程序部署到 Amazon Linux AMI 时出错

如何使用已在Github上发布但尚未在Rubygems上发布的gem版本?