Tag: 数据库

类似Rails的数据库迁移?

是否有任何易于安装/使用(在unix上)的数据库迁移工具,如Rails迁移? 我真的很喜欢这个想法,但是纯粹安装ruby / rails来管理我的数据库迁移似乎有些过分。

Rails无法登录postgresql – PG ::错误 – 密码 – 正确的信息

这就是我的database.yml文件的外观(显然还有相关的测试和生产条目) development: adapter: postgresql encoding: unicode database: dbname_dev pool: 5 username: username password: tehpass 在终端中,我可以成功运行以下命令并登录数据库: psql -U username dbname_dev 但是在创建了这个新的rails项目并运行之后 rails g controller ComingSoon index 当我转到localhost:3000 / coming_soon时,我收到以下消息(尽管双重和三重检查登录凭据) fe_sendauth: no password supplied 任何想法为什么我可以通过“psql”登录到这些数据库,但Rails不能?

怎么做Arel中的“where exists”

你如何进行包含Arel中“where exists”的查询? 例如,在这样的查询中,向所有供应商显示至少一个订单: SELECT * FROM suppliers WHERE EXISTS (SELECT * FROM orders WHERE suppliers.supplier_id = orders.supplier_id); 我在Arel文档http://rubydoc.info/gems/arel/2.0.7/Arel/Nodes/Exists中看到“存在”,但我在使用它时遇到了麻烦。

MongoDB:什么是连接池和超时?

所以我的Passenger旋转了我的Rails应用程序的5个实例 我使用Connection.new(“localhost”,3000,:pool_size => 1,:timeout => 5)连接到MongoDB 如果我在启动Rails应用程序时只产生开销,而不是按照请求,为什么我需要一个“连接池”? 为什么单个进程需要多于1个连接? 超时的目的是什么? 为什么我要连接超时? 不应该坚持通过Rails流程的生命周期吗? 如此迷茫… 这个问题特定于Ruby和Mongo,但我想它适用于其他语言/数据库。

如何在Heroku中更改列类型?

我试图将db:migrations迁移到我的heorku实例中,但是我收到错误。 FAQ描述了我的错误如下: 无法更改列类型 示例:PGError:错误:列“verified_at”无法强制转换为键入“date” 原因:PostgreSQL不知道如何将该表中的所有行强制转换为指定的类型。 很可能这意味着您在该列中有一个整数或一个字符串。 解决方案:检查您的记录并确保它们可以转换为新类型。 有时,更容易避免使用change_column,而是重命名/创建新列。 如何立即更改此迁移。 这是我的问题。 对于我的Contacts表,我创建了以下内容: t.string :date_entered 在以后的迁移中,我执行以下操作: change_column :contacts, :date_entered, :date 这个change_column似乎是个问题。 我应该……手动改变迁移吗? 有没有办法可以清理表格中的数据(我不知道Heroku会识别表格中的数据,因为我正在做耙子)。 我显然需要更改此值,并在整个应用程序中使用它。 谢谢。 这就是我想要的……想法? def self.up #change_column :contacts, :date_entered, :date #this fails in postgres, so trying the same outcome rename_column :contacts, :date_entered, :date_entered_old add_column :contacts, :date_entered, :date remove_column :contacts, :date_entered_old end def self.down add_column :contacts, […]

渴望加载:正确的做事方式

我正在运行Ruby on Rails 3.1。 我阅读了以下关于急切加载的文章和文档,我想找到一个正确的方法来做事: 渴望加载协会 [官方文档] ActiveRecord :: Associations :: ClassMethods (参见“渴望加载关联”一节)[官方文档] 渴望加载 [博客文章] #2说: 请注意,使用Post.includes([:author,:comments])等条件,其中([‘comments.approved =?’,true])。all都会产生意想不到的后果。 #3表示那些意想不到的后果是( 注意 :示例非常相似所以我引用了博客文章的确切文本,但你必须记住解决方法,而不是具体的实现): 此查询,因为它将使用LEFT JOIN,也会丢弃所有post,而不会在其任何评论上添加带有“first”字样的评论。 也就是说,如果存在非“关联”对象,则不会加载“主关联”对象。 当我尝试通过在我之前的问题中 添加诸如.where(:category_relationships => {:user_id => @current_user.id}) 条件来尝试使用预先加载时会发生这种情况,但我不希望这种情况发生。 所以(失败者因为我可能无法在我的情况下使用急切加载,其中条件无法在has_many语句中设置 – 请注意,在上面的代码中, @current_user.id是“动态设置”,与上述网站中的示例不同) , 我想知道是否有pratiques /技术/策略以限制数据库查询,因为我有一个“N + 1问题” 。 也许这些pratiques /技术/策略可以通过使用Ruby on Rails框架来实现…… #1说: 即使Active Record允许您像加入一样指定热切加载关联的条件,但推荐的方法是使用联接。 什么以及如何以正确的方式解决这个问题? 也许解决方案是通过运行特定的和分离的数据库查询来检索和构建自己需要加载的内容,但问题是如何“检索”/“关联”/“插入”那些检索到的“关联”对象到“主要相关的“对象,以便那些可以使用”一个là急切加载“的方式? 也就是说,如何使用@article.comments类的代码(参见上述问题以获取更多信息)并获得我自己急于加载的评论? 在我急切加载之后,是否有可能 / 正确地制作类似@article.comments = […]

Rails:模型与迁移中的validation

可能重复: Ruby on Rails:在模型或数据库中validation是否更好? 我看到可以在Rails模型和迁移中添加相同的约束/validation。 但哪一个是最好的方法? 在模型和数据库级别(以及为什么)进行validation是一种好的做法吗? 或者它们在轨道上相同? 例如,我们可以在模型和迁移中对名称进行相同的validation class User true, :presence => true end class CreateUser true, :null => false end end end

在数据库中清晰地表示电子商务产品和变体

我有一个我正在建设的电子商务商店。 我正在使用Rails / ActiveRecord,但实际上没有必要回答这个问题(但是,如果您熟悉这些内容,请随时回答Rails / AR)。 商店的要求之一是它需要代表两种类型的产品: 简单的产品 – 这些产品只有一个选项,例如乐队的CD。 它有基本的价格和数量。 有变化的产品 – 这些产品有多种选择,例如有3种尺寸和3种颜色的T恤。 尺寸和颜色的每种组合都有自己的价格和数量。 我过去做过这种事情,做了以下事情: 有产品表,其中包含产品的主要信息(标题等)。 有一个变量表,其中包含每种变体的价格和数量信息。 产品 has_many 变种 。 对于简单的产品 ,它们只有一个关联的Variant 。 有没有更好的方法可以做到这一点?

Rails:模型上的动态列/属性?

我有一个SaaS应用程序,帐户希望在User模型上保存不同类型的信息。 因此,例如,一个帐户可能想要保存年龄和生日,但在另一个帐户中,他们将不会使用这些列,并且希望保存关于头发颜色和高度的信息。 这些只是示例,但我如何构建我的模型和数据库,以便它与“自定义,动态”列一起使用,而不会创建太多空属性。

如何在Rails中设置database.yml文件?

我正在做本教程(http://dmix.ca/2008/09/how-to-scrape-websites-in-ruby-on-rails-using-scrubyt/),在开始之前是第4步设置database.yml文件。 不确定那是什么意思。 有人可以解释一下吗?