Tag: sqlite

Rails:两个’where’查询 – 每个查询单独工作,但不能一起工作

我想写一些类似的东西: @meeting_requests = Meeting.where(‘meeting_time >= ? AND requestee_id IS ? AND status = ?’, Date.today, nil, “Active”) .joins(:requestor) .where(‘birthyear >= ? AND birthyear <= ?', current_user.birthyear – 10, current_user.birthyear + 10 ) 这有效: @meeting_requests = Meeting.where(‘meeting_time >= ? AND requestee_id IS ? AND status = ?’, Date.today, nil, “Active”) 这有效: @meeting_requests = Meeting.joins(:requestor) .where(‘birthyear >= […]

使用SQLite作为生产数据库,但不好的想法

我们目前正在使用postgresql作为我们在rails中的生产数据库,很棒的数据库,但我正在围绕SQLite构建我们的应用程序的新版本。 实际上,我们不使用postgres的高级function,如全文搜索或PL / SQL。 考虑到SQLite,我喜欢用一个文件来移动数据库的想法,它在服务器和Rails中的简单集成,性能似乎非常好 – > Benchmark 我们的应用程序的流量相对较高,我们获得了每天1 200 000次浏览量。 因此,我们从数据库中进行了大量读取,但是我们做了一些写操作。 你对那个怎么想的 ? 任何人使用或尝试(像我们一样)使用SQLite像生产数据库的反馈?

无法将Git repo项目部署到Heroku中

我按照以下步骤操作: git clone git://github.com/heroku/ruby-sample.git cd ruby-sample heroku create git push heroku master heroku open 当我试图运行第4步时,我遇到了以下错误: $ git push heroku master Warning: Permanently added the RSA host key for IP address ‘50.19.85.156’ to the list of known hosts. Counting objects: 63, done. Delta compression using up to 4 threads. Compressing objects: 100% (49/49), done. Writing objects: […]

Rails 3.2 – 未定义的方法`where’for#<Array:… – Model.where()的查询

我试图将给定Header中的字段与Alarm模型中的其他字段进行比较。 正如您在代码中看到的,我以3个不同的步骤过滤警报。 前2个工作完美。 但是,最后一个不起作用。 它说: undefined method `where’ for #<Array:… 据我所知.where是一个与数组一起使用的类方法。 为什么不在这里工作? 我也试过.find_all_by和不同的东西……但无济于事。 @header = Header.find(1) # Extracts those alarms that are ACTIVE and have something in common with the tittles @alarmsT = Alarm.activated.where(“keyword in (?)”, [@header.title_es, @header.title_en, @header.title_en]) # Extracts alarms when Header has at least the same categories as an alarm @alarmsT = […]

用点击将SQLite数据库推送到Heroku?

所以我试图将一个SQLite3数据库推送到Heroku,我认为这是可能的,但是在这里和这里阅读意味着它可能不是(以下不起作用)。 heroku pg:push sqlite://db/development.sqlite3 HEROKU_POSTGRESQL_OLIVE_URL ! LOCAL_SOURCE_DATABASE is not a valid database name 当Heroku将语法切换为pg:push时,这是否已更改pg:push从db:push还是永远不可能? 鉴于不可能将解决方案从SQLite3迁移到本地postgres,然后推送到Heroku?

Rails 5调度程序每天更新一次数据库

我是rails的新手,希望每天午夜运行一次批处理文件/计划任务,检查哪些条目已过期。 表中的每条记录都有一个closing_date,在此之后,这些记录必须处于非活动状态。(DB上的status active = false)。 所以基本上它将运行2个SQL查询来获取所有记录,然后将另一个字段标记为对于过时的记录处于非活动状态。我正在使用Rails 5。 我应该如何处理这个-gem(rufus,无论是什么,发条或任何其他gem)或者只是一些cronjob的系统工具?我要将我的数据库更改为PostgreSQL,这样会产生什么影响? 任何建议或示例代码任何人都可以分享,以获得一个想法。

Rake db:迁移错误“不知道如何构建任务”

我有一个表,我在需要小数位的字段上使用整数,所以我试图创建一个迁移,将字段类型从整数更改为float / real。 我的数据库是sqllite3,我正在使用rails3。 我跑了 rails生成迁移ChangeMeasureColumnOnIngredients 创建初始迁移文件,然后将类更新到 class ChangeMeasureColumnOnIngredients <ActiveRecord :: Migration def self.up change_column:ingredients,:measure,:real 结束 我运行rake db:migrate并返回正常。 当我通过我的rails应用程序插入一个值时,它没有返回小数位。 我开始认为许多rails不知道’real’是什么作为数据类型,因此我将迁移更改为 change_column:ingredients,:measure,:float 然后我跑了 rake db:migrate change_measure_column_on_ingredients 现在我收到以下错误 c:\ Ruby192 \ rails3rc> rake db:migrate change_measure_column_on_ingredients(在c:/ Ruby192 / rails3rc中)rake aborted! 不知道如何构建任务’change_measure_column_on_ingredients’C:/Ruby192/lib/ruby/1.9.1/rake.rb:1720:in []’ C:/Ruby192/lib/ruby/1.9.1/rake.rb:2040:in invoke_task’C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:top_level中的block (2 levels) in top_level’ C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in每个’C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019: block in top_level’ C:/Ruby192/lib/ruby/1.9.1/rake.rb:2058:in中的block in top_level’ C:/Ruby192/lib/ruby/1.9.1/rake.rb:2058:in standard_exception_handling’C:/Ruby192/lib/ruby/1.9.1/rake.rb:2013:在top_level’ C:/Ruby192/lib/ruby/1.9.1/rake.rb:1992:in运行’C:/ […]

如何将现有的rails应用程序移动到heroku? (sqlite到postgres)

我有一个已经存在数据的Ruby on Rails应用程序。 我使用了默认的SQLite数据库设置,因此这是我所有数据所在的位置,但我需要将所有数据都放到heroku上的Postgres数据库中。 我怎么做?

Rails将普通旧字符串保存为SQlite作为BLOB? 我快要疯了!

我不知道为什么会发生这种情况,但Rails将字符串保存为SQLite作为BLOB。 在我的应用程序中创建新用户之前,我在保存到数据库之前使用其纯字符串密码和MD5: class User < ActiveRecord::Base before_create :encrypt_password def encrypt_password self.password = Digest::MD5.hexdigest(self.password) end end 但是,密码字段每次进入SQLite都是一个疯狂的BLOB! 我甚至可以告诉的唯一方法是将表导出到SQL时我可以看到该字段的真实性质: INSERT INTO “users” VALUES (24, ‘john.doe@example.com’, X’3639366432396530393430613439353737343866653366633965666432326133′); 我勒个去?? 所以现在当我尝试通过查找他们的电子邮件和MD5哈希密码来validation用户时,它每次都会失败。 REAL字符串显然与BLOB不匹配: User.find_by_email_and_password(‘john.doe@example.com’, Digest::MD5.hexdigest(‘password’) => nil 我一生中从未使用BLOB,更不用说作为用户表的密码字段了。 我的迁移明确定义:string作为数据类型。 执行User.columns清楚地显示: #<ActiveRecord::ConnectionAdapters::SQLiteColumn:0x00000105256ce0 @name="password", @sql_type="varchar(255)" 我一直在为这个应用程序工作一个月的大部分时间,直到昨晚我为User模型编写了一些测试时才看到这个问题。 尝试对用户进行身份validation的测试每次都会失败,因此我开始在控制台中手动构建用户,并发现密码永远不会匹配,因此所有用户查找都会失败。 用于创建用户的Rails调试信息如下所示: INSERT INTO “users” (“created_at”, “email”, “first_name”, “last_login_at”, “last_name”, “login_count”, “password”, “role_id”, “twitter”, “updated_at”, “uuid”) VALUES […]

ActiveRecord :: StatementInvalid SQLite3 :: SQLException:没有这样的列:true:

我希望@messages返回@folder.messages,其中“已删除”列的值不等于true。 我不确定为什么这会继续抛出SQLException。 我想我没有正确格式化已删除的属性,但我不确定如何解决它。 任何帮助将不胜感激。 提前致谢。 错误信息: ActiveRecord::StatementInvalid in MailboxController#index SQLite3::SQLException: no such column: true: SELECT “message_copies”.* FROM “message_copies” WHERE (“message_copies”.folder_id = 1) AND (deleted != true) 应用跟踪: app/controllers/mailbox_controller.rb:14:in `show’ app/controllers/mailbox_controller.rb:5:in `index’ Mailbox_Controller.rb 1 class MailboxController “show” 7 end 8 9 def show 10 current_user = User.find(session[:user_id]) 11 @folder = Folder.where(“user_id = #{current_user.id}”).first 12 @msgs = […]