Tag: 数据库

将JSON数据存储在mysql中

我有一个组织表例如 ID, name, address, phone, email, etc… 现在我想添加多个地址,电话和电子邮件。 这是在这样的电子邮件列中存储json数据的好方法 [ “address2@example2.com”, “address2@example2.com”, “address2@example2.com” ] 或者为电子邮件创建另一个表,为电话等创建另一个表… 如果存储json数据更好 – 在rails中使用它的最佳方法是什么?

Rails 3 I18n用于数据库表

我正在寻找有关使用国际化的最佳实践的一些提示和建议。 我一直在四处寻找,但我对所读的内容并不满意。 我读过的大部分文章都集中在使用I18n的yml文件,这在我的情况下是行不通的。 我目前有几个带英文文本的数据库表。 其中一些表的文本字段长度只有几个句子,有些则是6个段落的文本。 我想在西class牙语中也有这些字段。 我目前正在考虑的方法是使用I18n活动记录gem并拥有1个翻译表,该应用程序将用于应用程序中的所有翻译 class CreateTranslations false t.timestamps end end def self.down drop_table :translations end end 这是最好的方法吗? 一方面,所有翻译都将很好地存储在一个表中。 另一方面,每次用户向数据库查询I18n内容时。 应用程序将在原始表中查询密钥,然后查询转换表。 另一个问题是转换表将是庞大的并且具有大量行,因为它将存储应用程序的所有翻译(从章节标题[几个单词]到整个文本页面的所有内容)。 任何信息表示赞赏。 谢谢

Ruby on Rails database.yml中的socket声明是什么?

在config / database.yml中使用socket声明有什么用? 示例代码: staging: adapter: mysql encoding: utf8 database: (database) pool: 5 username: (user) password: (pass) socket: /tmp/mysql.sock # <——— this line 我的应用程序有效,这条线是否被评论。 那有什么用呢? 我有什么理由可以留下它,评论它或改变它的价值?

什么:force => true在模式文件中的意思

如果你查看db / schema.rb,你会看到类似的东西: create_table “users”, :force => true do |t| 什么:force => true是什么意思?

通知ala Facebook(数据库实施)

我想知道Facebook如何实现他们的通知系统,因为我正在寻找类似的东西。 FooBar评论了你的状态 Red1,Green2和Blue3对你的照片发表了评论 MegaMan和另外5人对您的活动发表了评论 我不能将多个通知写入单个记录,因为最终我将有与每个通知相关联的操作。 此外,在视图中,我希望当单个主题存在一定数量的通知时,通知将呈现为可扩展列表。 FooBar评论了你的状态(行动) Red1,Green2和Pink5对你的照片发表了评论[+] MegaMan和另外3人对您的活动发表了评论[ – ] MegaMan评论了你的活动(行动) ProtoMan评论了您的活动(行动) 巴斯评论了你的活动(行动) DrWilly评论了您的活动(行动) 干杯! PS我正在使用postgres和rails BTW。

Rake任务备份和恢复数据库

我正在研究一个Rails项目,有时候我会在家里编程,有时也会在工作中编程。 在我的开发过程中,我将数据添加到数据库中,我真的需要一种在家和工作中同步数据库的方法。 我正在考虑在Rails应用程序中备份/恢复整个数据库的Rake任务。 反正有吗?

Rspec,Cucumber:最佳速度数据库清洁策略

我想提高测试的速度。 我应该使用use_transactional_fixtures还是使用database_cleaner gem? 哪种database_cleaner策略最好? 我注意到从迁移后:truncation到:transaction我的800多个例子运行速度快了4倍! 当我使用database_cleaner :transaction时,我应该关闭use_transactional_fixtures吗? Rack_test的最佳策略是:transaction吗? 在使用selenium或akephalos时,从:transaction到:truncation的最佳实践是什么? PS Mysql,Rails 3,Rspec2,Cucumber PPS我知道spork和parallel_test并使用它们。 但他们是偏离主义的。 例如,Spork在整个套件运行中节省大约15-20秒,但从:transaction更改为:truncation显着地将运行时间从3.5增加到13.5分钟(差异10分钟)。

ActiveRecord查找现有表索引

我正在为我正在编写的插件编写一个迁移生成器,我需要能够找到表中的唯一索引,以便我可以修改现有的唯一索引以成为复合唯一索引。 我一直试图找到一种方法来访问表与ActiveRecord的索引。 我只能找到ActiveRecord :: ConnectionAdapters :: PostgreSQLAdapter :: indexes方法,但不幸的是,这只适用于PosgreSQLAdapter。 我需要能够支持其他主要数据库。 我首先使用schema.rb文件来查找索引,这首先起作用,但我很快意识到这是一个糟糕的策略。 我想如果ActiveRecord没有提供能够为多个数据库适配器执行此操作的方法,我可能能够编写特定于适配器的查询以从表中检索索引信息。 如果我需要求助于这种方法,那么确定正在使用的适配器的好方法是什么? 如果有人知道如何让ActiveRecord列出理想的表索引信息。

更改列名称Rails

我有这张桌子: class CreateShoes < ActiveRecord::Migration def change create_table :shoes do |t| t.string :name t.boolean :leather t.integer :season t.timestamps null: false end end end ‘season’专栏应该叫’season_id’。 我知道我必须写’t.rename:season,:season_id’,如http://edgeguides.rubyonrails.org/active_record_migrations.html#column-modifiers中所述,但我无法找到正确的语法。 应该是吗? class CreateShoes < ActiveRecord::Migration def change create_table :shoes do |t| t.string :name t.boolean :leather t.integer :season t.timestamps null: false end change_table :products do |t| t.rename :season, :season_id end end […]

如何在Rails应用程序中使用多个数据库使用database.yml

我已经阅读了有关如何执行此操作的文档,但在实践中,我遇到了问题。 在我的应用程序中,我有2个不同的数据库,如下面我的database.yml文件中所述。 sqlite_test: adapter: sqlite3 database: db/sqlite_test.sqlite3 table: plots pool: 5 timeout: 5000 development: adapter: mysql2 encoding: utf8 reconnect: false database: test pool: 5 username: myname password: mypassword host: localhost 我的应用程序是一个动态绘图仪,它将绘制(基本)数据库中的数据,而不了解数据库中的数据,或其结构如何。 这两个数据库都包含不同的数据。 我在一个单独的Rails应用程序中创建的SQLite数据库。 我正在使用的当前应用程序是围绕MYSQL数据库构建的,我在外部构建它。 我将SQLite数据库复制到/ db目录中。 所以在我的主模型中,当我说: class Plot < ActiveRecord::Base establish_connection :development set_table_name "stock_test" set_primary_key :id 一切都很好,花花公子。 但是,当我将其更改为: establish_connection :sqlite_test set_table_name “plots” 并尝试通过Rails控制台访问该数据库,我收到一个错误说: >>ActiveRecord::AdapterNotSpecified: […]