Tag: sqlite3

Rails 3.1 Sqlite3错误推送到Heroku

我有一个rails 3.1应用程序,我试图推送到Heroku。 当我推动它时它会一直失败。 Installing sqlite3 (1.3.4) with native extensions Unfortunately, a fatal error has occurred. Please report this error to the Bundler issue tracker at https://github.com/carlhuda/bundler/issues so that we can fix it. Thanks! /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions’: ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) /usr/local/bin/ruby extconf.rb checking for sqlite3.h… no sqlite3.h is […]

如何将heroku数据拉入本地SQLite3数据库? 遇到问题

我正在尝试从我的Rails应用程序进行本地备份,该应用程序部署到Heroku,并遇到问题。 我按照这里的说明操作: http : //docs.heroku.com/taps并安装了Taps。 我得到两种错误。 我在本地创建了一个SQLite数据库并尝试使用此命令提取数据: (sudo)heroku db:pull sqlite://Users/username/folder/testbackup.db 要么 (sudo)heroku db:pull sqlite:// username:password@localhost/Users/username/folder/testbackup.db 但无论哪种方式,我得到这个: 无法连接数据库:Sequel :: DatabaseConnectionError – > SQLite3 :: CantOpenException:无法打开数据库:无法打开数据库文件 或者,我尝试让Taps在我的应用程序中自动检测开发数据库并重写它,尽管这不是我想要的。 然后我开始得到如下错误: /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:777:in report_activate_error’: RubyGem version error: sequel(3.15.0 not ~> 3.13.0) (Gem::LoadError) from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:211:in激活’from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:1056:in’gem’from/ Library / Ruby / Gems / 1.8 /gem/水龙头-0.3.10 /斌/架构:4 并最终 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/lib/sqlite3/errors.rb:62:in`check’: SQLite3 :: SQLException:PRIMARY KEY必须是唯一的(Sequel :: […]

Windows 7 x64上的Ruby on Rails SQLite问题

当我尝试使用Windows 7 x64使用此db配置执行db:create on sqlite database时 development: adapter: sqlite3 database: db/development.sqlite3 timeout: 5000 我明白了,有点好笑 unknown error C:/Ruby/lib/ruby/1.8/dl/import.rb:29:in `initialize’ C:/Ruby/lib/ruby/1.8/dl/import.rb:29:in `dlopen’ C:/Ruby/lib/ruby/1.8/dl/import.rb:29:in `dlload’ C:/Ruby/lib/ruby/1.8/dl/import.rb:27:in `each’ C:/Ruby/lib/ruby/1.8/dl/import.rb:27:in `dlload’ C:/Ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/driver/dl/api.rb:31 C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require’ C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require’ C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:156:in `require’ C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:521:in `new_constants_in’ C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:156:in `require’ C:/Ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/driver/dl/driver.rb:1 C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require’ C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require’ C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:156:in `require’ C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:521:in `new_constants_in’ C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:156:in `require’ C:/Ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/database.rb:619:in `load_driver’ C:/Ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/database.rb:617:in `each’ C:/Ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/database.rb:617:in `load_driver’ C:/Ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/database.rb:72:in […]

轨道中的外键4

我正在使用Rails 4和SQLite。 我正在尝试在indicators表中添加外键。 请参阅下面的代码 class Indicator < ActiveRecord::Base belongs_to :objetive belongs_to :responsible, class_name: "Person" end 迁移脚本: class AddFksToIndicator < ActiveRecord::Migration def change add_reference :indicators, :objective, index: true add_reference :indicators, :responsible, index: true end end 当运行迁移时一切正常,所以我尝试在控制台中: 2.0.0p247 :002 > i = Indicator.new => # 2.0.0p247 :002 > i.objective_id = 0 2.0.0p247 :003 > i.save 令我惊讶的是,指标已经保存,并且没有id = […]

Rit错误与git push heroku master错误

我正试图把我的git推到heroku上。 为此,我使用: $ git push heroku master 回报: remote: –without-sqlite3-lib=${sqlite3-dir}/ remote: remote: remote: Gem files will remain installed in /tmp/build_ae596310505cf83afbb45a2986208c96/vendor/bundle/ruby/2.0.0/gems/sqlite3-1.3.11 for inspection. remote: Results logged to /tmp/build_ae596310505cf83afbb45a2986208c96/vendor/bundle/ruby/2.0.0/gems/sqlite3-1.3.11/ext/sqlite3/gem_make.out remote: An error occurred while installing sqlite3 (1.3.11), and Bundler cannot remote: continue. remote: Make sure that `gem install sqlite3 -v ‘1.3.11’` succeeds before bundling. remote: ! remote: […]

Rails – 使用现有数据库,无法在不丢失数据的情况下运行迁移

我是一个使用Rails 4.1的初学者。 我正在尝试在开发环境中将现有的sqlite3 db与我的应用程序集成。 为了让这个工作起作用,我遵循了Joel Berghoff 博客 (针对MySQL)中列出的步骤: 在config / database.yml中引用db 运行“rake db:schema:dump” 将schema.rb转换为db / migrate / 001_create_database.rb 我面临的问题是,每当我运行“rake db:migrate”时,整个数据库都会刷新并丢失所有预先填充的数据。 我通过首先运行迁移,然后替换使用预先填充的副本生成的空白数据库来解决这个问题一段时间 – 这使我可以在rails控制台中使用我的模型并查看数据。 但是,当我尝试在本地计算机上启动服务器时,我收到一条消息,指出迁移正在等待处理。 我不太清楚在这里做什么…我已经读过我应该从“rake db:seed”播种数据库,但是我现有的数据库非常大 – 几乎是1mm的记录,当我尝试这个时(虽然很笨拙,但在我放弃之前它跑了3个多小时。 任何关于如何进行的指导都非常感谢!

Ruby on Rails – sqlite 3 rake迁移不更新数据库

我使用的是RoR(3.2.2)和SQLite 3(1.3.5)。 当我最初生成模型时,我能够成功创建数据库。 但是,每当我尝试使用迁移生成器时,它似乎在命令行中没有任何问题(没有错误),但是当我检查数据库时,没有任何更新或更改。 例如,我创建了这个数据库: $ rails generate model User name:string email:string 分贝/迁移/ [时间戳] _create_users.rb class CreateUsers < ActiveRecord::Migration def change create_table :users do |t| t.string :name t.string :email t.timestamps end end end 我运行迁移: $ bundle exec rake db:migrate 到目前为止,我使用SQLite数据库浏览器检查我的数据库,一切看起来都应该如此。 然后,如果我想添加一个索引: $ rails generate migration add_index_to_users_email 分贝/迁移/ [时间戳] _add_index_to_users_email.rb class AddIndexToUsersEmail < ActiveRecord::Migration def change […]

如何查找查询结果的大小

我在rails中有以下查询: records = Record.select(‘y_id, source’) .where(:source => source, :y_id => y_id) .group(:y_id, :source) .having(‘count(*) = 1’) 如果我puts records我会得到以下输出: [#, #] 这看起来像输出数组中有2个元素。 但是当我尝试做records.size我得到: {[10000009, “XYZ”]=>1, [10000070, “XYZ”]=>1} 当records是一个包含2个元素的数组时,为什么records.size不会打印2 ? 由于某种原因group by查询结果group by行为是否有所不同? 我该怎么做才能获得records的大小

GROUP_BY内的活动记录限制

SCENARIO我有一张桌子,上面有一张带有用户表的post。 我希望能够获取所有post并将其分组给用户,但我想为每个用户设置10个限制。 class Post < ActiveRecord::Base belongs_to :user end class User 10).group_by(&:user) 有什么想法吗? 我是否必须编写自定义SQL,或者Active Record可以执行此操作吗?

rails + sqlite – 由于外键问题,无法从数据库中删除列

我目前无法从数据库中的特定表中删除列。 sqlite3给出的错误信息是: FOREIGN KEY约束失败:DROP TABLE’table_name’ 我不是想放弃一张桌子,我的迁移是 remove_column :table_name, :column_name 这只是一个字符串数据列,没有什么特别之处