在本文中,我们将详细介绍在Rails迁移的各个方面,并为您提供关于MySQL中,您可以指定新列应位于的位置吗?的相关解答,同时,我们也将为您带来关于MySQLRails迁移错误:“重命名schema_
在本文中,我们将详细介绍在Rails迁移的各个方面,并为您提供关于MySQL中,您可以指定新列应位于的位置吗?的相关解答,同时,我们也将为您带来关于MySQL Rails迁移错误:“重命名schema_migration时出错(错误号:-1)”、mysql – 我可以在Rails .where()中使用Regex吗?、MySQL:您可以指定一个随机限制吗?、ruby-on-rails – Docker rails迁移的有用知识。
本文目录一览:- 在Rails迁移(MySQL)中,您可以指定新列应位于的位置吗?
- MySQL Rails迁移错误:“重命名schema_migration时出错(错误号:-1)”
- mysql – 我可以在Rails .where()中使用Regex吗?
- MySQL:您可以指定一个随机限制吗?
- ruby-on-rails – Docker rails迁移
在Rails迁移(MySQL)中,您可以指定新列应位于的位置吗?
如果要通过MySQL添加列,则可以使用AFTER修饰符指定该列在表中的位置。但是,如果我通过Rails迁移执行add_column,则该列将在表的末尾创建。
Rails迁移有任何功能来指定添加列的位置吗?
答案1
小编典典现在可以在Rails 2.3.6+中通过传递:after参数来实现
https://rails.lighthouseapp.com/projects/8994/tickets/3286-patch-add-support-
for-mysql-column-positioning-to-
migrations
对于没有看到使用此功能的优点的每个人:您是否从未在ORM之外查看数据库?如果我在任何类型的UI中查看,我都喜欢将外键,状态列,标志等内容组合在一起。这不会影响应用程序,但肯定会加快我查看数据的能力。
MySQL Rails迁移错误:“重命名schema_migration时出错(错误号:-1)”
我是一个PHP开发人员,我是Rails的新手,但是进展顺利,一切似乎都非常简单.但是,直到今天早上,我一直在使用sqlite,并决定将自己构建的内容移至MysqL. rake db:create可以完美地工作,但是当我尝试rake db:migrate时,出现以下错误:
rake aborted!
MysqL::Error: Error on
rename of
‘./test_development/schema_migrations’
to ‘./test_development/#sql2-c7b-c’
(errno: -1): CREATE UNIQUE INDEX
unique_schema_migrations
ON
schema_migrations
(version
)
考虑到迁移脚本中可能存在错误,我使用最简单的表创建了一个干净的Rails项目,并得到了相同的错误.因此,我重新安装了MysqL和MysqL gem,以确保它们都没有问题,并且我仍然没有运气.这是我正在运行的版本:
>导轨2.3.4
> Ruby 1.8.6
> MysqL 5.1.40
> MysqL Gem 2.8.1
我觉得这可能与InnoDB有关,因为在此框上,我对该引擎有问题.但是,如果有人可以帮助我,我将不胜感激,因为它阻止了我前进.
谢谢,
基兰
更新:
根据Phil的要求,结果如下:
SHOW ENGINE INNODB STATUS
和
SHOW VARIABLES LIKE ‘innodb%’
解决方法:
您已将innodb_force_recovery选项设置为6.这可能已从默认值0更改为解决早期问题.在此模式下,InnoDB除了SELECT,CREATE TABLE和DROP TABLE外,将不提供任何其他功能.
尝试关闭MysqL,然后编辑my.cnf文件.将innodb_force_recovery设置为0(或删除该选项),然后重新启动MysqL.
mysql – 我可以在Rails .where()中使用Regex吗?
我有一个菜单,显示各种艺术家的第一个字母:
A B C D E F …
它基本上是一种通过名字的第一个字母过滤许多艺术家的方法.
问题有些以符号,数字或除[a-z]之外的任何东西开头.
所以我想要它
#A B C D E F …
但是我如何使用where子句来完成这项工作呢?
filter_letter = (params[:letter] =~ /[a-z]/i ? params[:letter] : "something_here" )
@artists = Artist.where("name LIKE ?", "#{filter_letter}%")
解决方法:
由于您使用的是MysqL,因此可以利用它对正则表达式的支持.您需要切换到RLIKE运算符并相应地调整操作数.
例如,使用现有结构,您可以使用以下内容
filter_letter = (params[:letter] =~ /[a-z]/i ? params[:letter] : "[^a-z]" )
@artists = Artist.where("name RLIKE ?", "^#{filter_letter}")
有关更多信息,请参见http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html.请特别注意,MysqL正则表达式不区分大小写,因此您无需担心该问题.
MySQL:您可以指定一个随机限制吗?
有没有一种方法可以随机化SQL(MySQL)中的限制数?
我想做的是在查询中获得随机结果的数量,以在没有任何服务器端脚本的情况下用于插入子查询中。我希望能够以假设的方式运行的查询是:
SELECT id FROM users ORDER BY RAND() LIMIT RAND() * 1000
当然这是行不通的,但是还有另一种方法来随机化限制数吗?有许多将有限的结果随机化的示例,但是我在网上找不到有关设置随机限制的任何信息。
答案1
小编典典这个怎么样:
SELECT * FROM users ORDER BY RAND() HAVING RAND() * 1000 < 10
该子句WHERE RAND() * 1000 < 10
随机选择以1%的概率包括每一行。它不是一个LIMITvariable
子句,但会做大致相同的事情。
ruby-on-rails – Docker rails迁移
这是我的fig.yml的样子:
pg: image: docker-index.my.com/postgres ports: - 5432 redis: image: docker-index.my.com/redis ports: - 6379 mongodb: image: docker-index.my.com/mongodb ports: - 27017 app: build: . command: bundle exec rails s volumes: - .:/beesor ports: - 3000:3000 links: - pg - redis - mongodb environment: RAILS_ENV: production
一切正常,直到启动应用程序的时刻,因为rails初始化程序挂钩在服务器上启动然后我得到有关数据库连接的错误,数据库不存在!当然因为它不是在Dockerfile上创建的(见下文)
Dockerfile内容:
# DOCKER-VERSION 0.10.0 FROM docker-index.my.com/ruby:1.9.3 MAINTAINER my.com RUN apt-get update -qq && apt-get install -y git-core xvfb curl nodejs libqt4-dev libgtk2.0-0 libgtkmm-3.0-1 libnotify4 sqlite3 libsqlite3-dev graphicsmagick imagemagick subversion libpq-dev libxml2-dev libxslt-dev git build-essential RUN mkdir /my_app workdir /my_app RUN gem install bundler ADD Gemfile /my_app/Gemfile ADD Gemfile.lock /my_app/Gemfile.lock RUN bundle install RUN bundle pack --all ADD . /my_app
我没有看到我可以放置rake db的地方:创建db:migrate db:seed命令!,如果我把它们放在Dockerfile的末尾然后当无意中尝试构建app它抱怨数据库服务器没有退出,(在fig构建app容器的时候,其他容器没有启动),我无法修复这个改变fig.yml上的顺序,
我在这里面临鸡蛋问题,我能让这个人工作吗?
我确信所有链接都能完美运行,所以问题更多的是编写脚本编排.
解决方法
我创建了一个rake任务来包装我需要的东西,它运行迁移,种子,并启动rails服务器,所以修复是通过这个更改图上的命令:
命令:rake my_app:setup
关于在Rails迁移和MySQL中,您可以指定新列应位于的位置吗?的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于MySQL Rails迁移错误:“重命名schema_migration时出错(错误号:-1)”、mysql – 我可以在Rails .where()中使用Regex吗?、MySQL:您可以指定一个随机限制吗?、ruby-on-rails – Docker rails迁移等相关知识的信息别忘了在本站进行查找喔。
本文标签: