标签: database

如何为测试目的模拟数据库故障(在Ruby on Rails中)

通过某些监视工具(例如Monit)使用心跳消息使应用程序幸存下来是一种常见的设置.如果应用程序正在运行并且一切正常,它将返回"我还活着"消息,如果数据库失败或Web服务器挂起则不返回任何内容或内部服务器错误(HTTP状态代码500)页面.如何模拟数据库失败以在Ruby on Rails中测试此行为?如果可以在测试(Test::UnitRSpec)本身内为测试目的启用/禁用此功能,那将是很好的.

database testing unit-testing ruby-on-rails

5
推荐指数
1
解决办法
1717
查看次数

动态创建新的Active Record模型和数据库表

我不确定我应该为这个问题命名.我刚开始服务器端编程,我需要一些帮助.

到目前为止,我在RoR上阅读的所有教程都涉及创建预定义的表和预定义的字段(id,name,email等).它们使用ActiveRecord作为基类,并且保存到db由超类自动处理.

我正在尝试编程的是允许用户定义的表与字段.所以想想这样的方式.Web UI将有一个空表,用户将命名表,并添加列(字段),然后添加行,然后保存它.我该如何实现?我不是要求细节,只是概述它.正如我所说,我到目前为止阅读的所有教程都处理预定义的表,其中包含预定义ActiveRecord子类的字段.

简而言之,我要问的是,如何在运行时在db中创建表,并向表中添加字段.

希望我很清楚,如果没有,请告诉我,我会尝试详细说明.谢谢.

ruby database ruby-on-rails

5
推荐指数
1
解决办法
2719
查看次数

多对多查询,MySQL

我有3个这样的表:

电影:

  • movie_id(int)
  • movie_title(varchar)
  • movie_runtime(int)
  • movie_releaseYear(int)
  • ...

类型:

  • genre_id(int)
  • genre_name(varchar)

movieGenres:

  • movieGenre_id(int)
  • movieGenre_movieId(int)
  • movieGenre_genreId(int)

电影可以包括许多类型.
我想抓住电影片名,运行时和发行年及其类型.我怎么能在一个查询中做到这一点?

我试着这样做:

SELECT u.movie_title, u.movie_runtime, u.movie_releaseYear, a.genre_name 
FROM movieGenres ua 
LEFT JOIN movies u ON u.movie_id = ua.movieGenre_filmId 
LEFT JOIN genres a ON a.genre_id = ua.movieGenre_genreId
LIMIT 0,10
Run Code Online (Sandbox Code Playgroud)

这返回类似于:

罗宾汉_ 101 _ 2001 _冒险
罗宾汉_ 101 _ 2001 _动作
罗宾汉_ 101 _ 2001 _戏剧
防火墙_ 98 _ 2003 _动作
防火墙_ 98 _ 2003 _剧情

我不想重复我已经知道的信息.我希望它显示如下:

罗宾汉_ 101 _ 2001 _冒险_动作_戏剧
防火墙_ 98 _ 2003 _动作_戏剧 …

mysql database many-to-many

5
推荐指数
1
解决办法
276
查看次数

SQLite的.如何在附加数据库中创建索引?

我有一个问题,添加索引到附加到主数据库的内存数据库.

1)我从文件中打开数据库(F)

2)附加:memory:(M)数据库

3)在数据库M中创建表

4)将数据从F复制到M

我还想在数据库M中创建一个索引,但不知道该怎么做.此代码创建索引,但在F数据库中:

sQuery = "CREATE INDEX IF NOT EXISTS [INDID] ON [PANEL]([ID]  ASC);";
Run Code Online (Sandbox Code Playgroud)

我尝试在表名之前添加名称限定符,如下所示:

sQuery = "CREATE INDEX IF NOT EXISTS [INDID] ON [M.PANEL]([ID]  ASC);";
Run Code Online (Sandbox Code Playgroud)

但SQLite返回的消息是main.M.PANEL列不存在.

我能做什么?

database sqlite

5
推荐指数
1
解决办法
3885
查看次数

SQLite Android中的表名限制

可能我提出了一些琐碎的问题,但我想知道SQLite中的表名或字段名是否有限制,尤其是在Android中。我记得,Oracle数据库中存在或仍然存在类似问题。

database sqlite android limit

5
推荐指数
2
解决办法
6211
查看次数

我可以在PostgreSQL HStore值上使用聚合函数吗?

我可以对hstore列中的值执行聚合查询吗?例如,我想确定商店SUM中的count字段.

database postgresql

5
推荐指数
1
解决办法
2470
查看次数

rails中的多列主键

我正在尝试将桌面应用程序迁移到rails(也处理相当老式的现有数据库).问题是我在一列中没有唯一的ID,但它是表的三列,保证了记录的唯一性.

鉴于我有三个表:

authors
  author_name,
  author_letter,
  author_nr1,
  author_nr2
  ...

titles
  titel_nr,
  titel_name,
  ...

author_titles
  titel_nr,
  author_letter,
  author_nr1,
  author_nr2
Run Code Online (Sandbox Code Playgroud)

作者的"主键"包括author_letter,author_nr1,author_nr2 here.

那么我需要一种多列主键来使rails关联工作吗?或者我在这里走向错误的方向?

database ruby-on-rails foreign-keys associations primary-key

5
推荐指数
1
解决办法
6505
查看次数

查询加入等价?

这两个查询是否等效(假设表中有不同的/任何类型的数据)?是否有任何情况会导致不同的结果?

查询1:

select * from tablea a
left join tableb b on a.keyacol = b.keybcol
inner join tablec c on c.keyccol = b.keybcol;
Run Code Online (Sandbox Code Playgroud)

查询2:

select * from tablea a
left join (
select b.*, c.* from tableb b
inner join tablec c on c.keyccol = b.keybcol
) sub on a.keyacol = sub.keybcol;
Run Code Online (Sandbox Code Playgroud)

sql database oracle

5
推荐指数
1
解决办法
137
查看次数

按贝叶斯评级订购数据库结果

我不确定这是否可行,但在做"丑陋"的方式之前我需要确认:)

因此,"结果"是数据库中的帖子,存储方式如下:

  • posts表,包含所有重要的东西,比如ID,标题,内容
  • post元表,包含额外的帖子数据,如rating(this_rating)和投票数(this_num_votes).该数据成对存储,该表有3列:帖子ID /键/值.它基本上是WordPress表结构.

我想要的是取出评分最高的帖子,根据这个公式排序:

br =((avg_num_votes*avg_rating)+(this_num_votes*this_rating))/(avg_num_votes + this_num_votes)

我偷了这里的形式.

avg_num_votes并且avg_rating是已知变量(它们在每次投票时得到更新),因此不需要计算它们.

这可以用mysql查询完成吗?或者我是否需要获取所有帖子并使用PHP进行排序?

php mysql database sorting sql-order-by

5
推荐指数
1
解决办法
1152
查看次数

OpenX升级会导致插件错误

升级到OpenX 2.8.8后,我收到了以下错误:

PEAR Error 
DB_DataObject Error: autoload:Could not find class DataObjects_Ext_market_assoc_data using class_location value 

PEAR Error 
DB_DataObject Error: factory could not find class from ext_market_assoc_data 
Run Code Online (Sandbox Code Playgroud)

您能否建议我可以采取哪些措施来解决这些错误或进一步诊断问题?它位于多个页面上,包括显示横幅的页面 - 但不在现场网站上.

TTFN Travis

database plugins pear upgrade openx

5
推荐指数
1
解决办法
1887
查看次数