标签: migration

如何强制ActiveRecord重新加载一个类?

我正在创建一系列迁移,其中一些是标准的"创建表"或"修改表"迁移,其中一些迁移修改数据.我正在使用我的实际ActiveRecord模型来修改数据,a:

Blog.all.each do |blog|
  update_some_blog_attributes_to_match_new_schema
end
Run Code Online (Sandbox Code Playgroud)

问题是,如果我加载Blog类,然后修改表,然后再次使用Blog类,模型具有旧的表定义,并且无法保存到新表.有没有办法重新加载类及其属性定义,以便我可以重用它们?

ruby migration activerecord ruby-on-rails

59
推荐指数
2
解决办法
2万
查看次数

从MySQL切换到Cassandra - 优点/缺点?

对于一些背景知识 - 这个问题涉及在单个小型EC2实例上运行的项目,并且即将迁移到中型项目.主要组件是Django,MySQL和大量用python和java编写的自定义分析工具,这些工具都是繁重的工作.同一台机器也在运行Apache.

数据模型如下所示 - 大量实时数据来自各种网络传感器,理想情况下,我想建立一个长轮询方法,而不是每15分钟进行一次当前轮询(限制为计算统计数据并写入数据库本身).一旦数据进入,我将原始版本存储在MySQL中,让分析工具在这些数据上松散,并将统计信息存储在另外几个表中.所有这些都是使用Django呈现的.

我需要的关系功能 -

  • 为了通过[SliceRange在Cassandra的API似乎satisy这种]
  • 通过...分组
  • 多个表之间的多种关系[Cassandra SuperColumns似乎在一对多之间表现良好]
  • 狮身人面像给我一个很好的全文引擎,所以这也是必要的.[在Cassandra上,Lucandra项目似乎满足了这种需求]

我的主要问题是数据读取非常慢(并且写入也不是很热).我现在不想在它上面投入大量资金和硬件,而且我更喜欢随着时间的推移可以轻松扩展的东西.在这种意义上(或便宜),纵向扩展MySQL并非易事.

所以基本上,在阅读了很多关于NOSQL并尝试了像MongoDB,Cassandra和Voldemort这样的东西之后,我的问题是,

  • 在中等EC2实例上,通过转换到像Cassandra这样的东西,我可以获得读/写的任何好处吗?这篇文章(pdf)肯定似乎暗示了这一点.目前,我会说每分钟几百次写入是常态.对于读取 - 由于数据每5分钟左右更改一次,因此缓存失效必须非常快.在某些时候,它应该能够处理大量并发用户.即使创建了索引,MySQL在大型表上进行某些连接时,应用程序性能也会被杀死 - 大约32k行的内容需要超过一分钟才能呈现.(这可能是EC2虚拟化I/O的工件).表的大小约为4-5百万行,并且大约有5个这样的表.

  • 考虑到CAP定理和最终的一致性,每个人都在谈论在多个节点上使用Cassandra.但是,对于刚刚开始增长的项目,部署单节点cassandra服务器是否有意义?有什么警告吗?例如,它可以取代MySQL作为Django的后端吗?[这是推荐的吗?]

  • 如果我确实转移,我猜我将不得不重写部分应用程序以执行更多"administrivia",因为我必须执行多次查找以获取行.

  • 将MySQL用作关键值存储而不是关系引擎是否有意义,并继续使用它?这样我可以利用大量可用的稳定API,以及稳定的引擎(并根据需要使用关系).(Brett Taylor在Friendfeed上的帖子 - http://bret.appspot.com/entry/how-friendfeed-uses-mysql)

任何转变的人的见解将不胜感激!

谢谢.

mysql migration django cassandra nosql

59
推荐指数
2
解决办法
3万
查看次数

59
推荐指数
1
解决办法
4万
查看次数

Wordpress在迁移后继续重定向到install-php

这是我的情况.我已经按照关于将网站移动到另一台服务器的wordpress codex页面上的确切说明进行操作.这是我采取的步骤.

  1. 导出我的数据库的副本
  2. 在新服务器中创建一个新数据库
  3. 导入我之前导出的数据库
  4. 通过Ftp上传我的Wordpress文件的副本
  5. 使用此脚本将我的所有本地URL更改为新的URL
  6. 根据新服务器更改我的wp-config.php文件(我没有忘记表前缀.虽然它有一些大写字符)

然后,当我尝试在新位置打开我的网站时,它只是将我引导到wp-admin/install.php现在只是为了使场景更清晰:目标文件夹(在实时服务器上)是public_html文件夹中的子directori.已经有另一个wordpress安装在里面(我说这是为了万一它应该重要)

我的.htaccess看起来像这样

    # BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subDirectoryName/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subDirectoryName/index.php [L]
</IfModule>

# END WordPress
Run Code Online (Sandbox Code Playgroud)

我已经尝试通过phpMyadmin检查和修复我的表,但一切似乎都没问题,对问题没有影响.

我还尝试清空实时服务器上的数据库并完成安装.它安装没有问题,一切正常,但是,我没有用于另一个干净的安装.但我认为这至少排除了wp-config文件的任何问题.我正在使用Wordpress版本3.3.1

所以我想我留下的一个重要问题是: 为什么wordpress在迁移后没有识别我的Install?

任何帮助非常感谢!

migration wordpress install relocation

59
推荐指数
5
解决办法
9万
查看次数

无法加载文件或程序集'Microsoft.Build.Framework'(VS 2017)

当我尝试运行命令"update-database"时,我得到以下异常:

指定'-Verbose'标志以查看应用于目标数据库的SQL语句.System.IO.FileNotFoundException:无法加载文件或程序集'Microsoft.Build.Framework,Version = 15.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.文件名:'Microsoft.Build.Framework,Version = 15.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'

警告:装配绑定日志记录已关闭.要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失.要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog].

无法加载文件或程序集"Microsoft.Build.Framework,Version = 15.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"或其依赖项之一.系统找不到指定的文件

c# migration msbuild visual-studio-2017

59
推荐指数
8
解决办法
3万
查看次数

在Rails Migration(MySQL)中,您可以指定新列的位置吗?

如果我通过My​​SQL添加列,我可以指定表中该列将使用AFTER修饰符的位置.但是如果我通过Rails迁移执行add_column,则会在表的末尾创建该列.

rails迁移是否有任何功能来指定添加列的位置?

mysql migration ruby-on-rails

58
推荐指数
4
解决办法
3万
查看次数

你打算如何处理迁移到Python 3?

考虑到Python 3即将推出,我确信这是大多数python开发人员的主题.一些问题让我们朝着正确的方向前进:

  1. 你是否会同时维护python 2和python 3版本,或者你只需​​要一个python 3版本一旦完成?

    • 您是否已经开始或计划很快开始?或者你打算等到最终版本出来全面展开?

python migration python-2to3 python-3.x

52
推荐指数
3
解决办法
9867
查看次数

管理由Git操作创建的schema.rb中的冲突

我创建了一个迁移,运行rake db:migrate,这突破了我的db/schema.rb版本号.然后我做了一个git fetch origin master,看到我的团队成员发生了变化.所以我做了一个git stash和一个git rebase FETCH_HEAD,然后是一个git stash pop.这导致db/schema.rb与版本号冲突.

Upstream>>>
ActiveRecord::Schema.define(:version => 20110930179257) do
===========
ActiveRecord::Schema.define(:version => 20110930161932) do
<<<Stashed
Run Code Online (Sandbox Code Playgroud)

我认为适当的修复方法是手动将版本号增加到高于上游的值.

这是明智的还是坏消息?

谢谢,马克斯

migration git ruby-on-rails

52
推荐指数
4
解决办法
2万
查看次数

如何在Rails中的迁移中编写SQL

我有以下SQL需要做的事情

CREATE TABLE cars_users2 AS SELECT DISTINCT * FROM cars_users;

DROP TABLE cars_users;

ALTER TABLE cars_users2 RENAME TO cars_users;
Run Code Online (Sandbox Code Playgroud)

由于我不能使用heroku dataclips删除表,我不能使用dataclips.

所以我想我需要在迁移中执行此操作.

如何将此sql写为迁移?

sql migration postgresql ruby-on-rails-3 rails-activerecord

52
推荐指数
4
解决办法
4万
查看次数

从迁移中执行Rake任务?

我有一个Rake任务,可以从文件中将配置数据加载到DB中,是否有正确的ruby/rails方式在迁移时调用它?

我的目标是同步我的团队数据库配置,而不必广播然后运行任务 lalala

  def self.up
    change_table :fis_situacao_fiscal do |t|
      t.remove :mostrar_endereco
      t.rename :serie, :modelo 
    end

    Faturamento::Cfop.destroy_all()
    #perform rake here !
  end
Run Code Online (Sandbox Code Playgroud)

更新 我现在的工作方式,并且有效:

system('rake sistema:load_data file=faturamento/cfop')
Run Code Online (Sandbox Code Playgroud)

这是@Ryan Bigg的建议,它是例外:

Rake::Task['rake sistema:load_data file=faturamento/cfop'].invoke()
Run Code Online (Sandbox Code Playgroud)

.

==  AlterSituacaoFiscalModeloEndereco: migrating ====================
-- change_table(:fis_situacao_fiscal)
   -> 0.0014s

rake aborted!
An error has occurred, this and all later migrations canceled:

Don't know how to build task 'rake sistema:load_data file=faturamento/cfop'
Run Code Online (Sandbox Code Playgroud)

哪里出错了?

ruby migration ruby-on-rails

50
推荐指数
3
解决办法
2万
查看次数