`

新旧系统数据迁移脚本

    博客分类:
  • RUBY
 
阅读更多
require 'active_record'
require 'ruby-progressbar'
require 'yaml'
ROOT = File.expand_path("..",__FILE__)

DB_CONFIG = YAML.load(File.new("#{ROOT}/database.yml"))
class FromDB < ActiveRecord::Base
  self.record_timestamps = false
  self.abstract_class = true
  establish_connection(DB_CONFIG['from'])
end
class ToDB < ActiveRecord::Base
  self.record_timestamps = false
  self.abstract_class = true
  establish_connection(DB_CONFIG['to'])

  def self.get_instance(obj)
    self.find_by_id(obj.id) || self.new
  end

  def self.save_from(obj)
    n = get_instance(obj)
    self.column_names.each do |c|
      m = "convert_#{c}"
      v = nil
      if obj.respond_to?(m)
        v = obj.send(m)
      else
        v = obj.send(c) if obj.respond_to?(c)
      end
      n.send("#{c}=", v) if !v.nil?
    end
    obj.after_save_callback(n) if n.save && obj.respond_to?(:after_save_callback)
    n
  end
end



require File.expand_path("../../migrate_db.rb",__FILE__)
class Fromventory < FromDB
  self.table_name = "ventories"

  def convert_active
      self.state == 2 ? -1 : 1
  end
end

class Toventory < ToDB
  self.table_name = "ventories"
end

Fromventory.all.each do |src|
  c = Toventory.save_from(src)
end

0
0
分享到:
评论

相关推荐

    不同数据库之间的不同表结构的数据迁移

    数据迁移是IT行业中常见的任务,尤其在数据库管理中,它涉及到将数据从一个数据库系统迁移到另一个,以适应新的架构、提升性能或是整合系统。在"不同数据库之间的不同表结构的数据迁移"这个主题中,我们将深入探讨这...

    数据迁移方案(医疗卫生信息).pdf

    - 数据转换与迁移程序开发:编写前后台程序,通过执行函数或脚本实现数据迁移。 3. 实施阶段: - 创建迁移环境,确保业务准备就绪,处理完未完成的事务。 - 新旧系统数据调研,对比分析旧系统数据,以满足新...

    2017-5数据迁移

    - 当新旧系统运行在同一操作系统上时,可以采用Oracle的impdp/expdp工具进行数据迁移。 - 设置合适的并行度以提高迁移效率。 3. **数据迁移测试**: - 在迁移过程中,采用dblink+脚本的方式进行测试,确保迁移...

    druid.io数据迁移sql

    druid.io新旧集群数据迁移的实现,该脚本就是在druid.io数据迁移过程中会使用到的脚本

    ST升级脚本,k8s环境升级系统脚本

    综上所述,"ST升级脚本,k8s环境升级系统脚本"涉及的核心技术包括Kubernetes的滚动更新、Nacos和Redis的服务升级、Elasticsearch的数据迁移,以及通过skyline-coc-upgrade脚本来协调和自动化整个过程。理解并熟练...

    mysql数据库数据迁移应用方案设计(附带源码)

    4. **数据转换**:使用SQL脚本或者编程方式(如Java)将旧数据库的数据迁移到新结构中。Java后端开发中,可以使用JDBC连接MySQL数据库,执行SQL语句实现数据迁移。此外,还可以借助第三方库如MyBatis或Hibernate进行...

    大数据集群迁移方案

    - **Hive迁移脚本**:在网络上找到了一个有效的Hive迁移脚本,该脚本可以导出Hive库中所有表的创建语句。这对于后续的迁移工作非常有用。 通过以上介绍可以看出,大数据集群的整体迁移是一项复杂但有序的过程。遵循...

    使用php sql 2005 数据迁移

    此外,对于复杂的迁移,可能需要编写更复杂的脚本,使用事务以确保数据的一致性,或者利用数据库管理系统(如SSIS)进行更高效的数据迁移。 总之,"使用php sql 2005 数据迁移"涉及到的是使用PHP的sqlsrv扩展与SQL ...

    HFSS新旧版本模型转换,优参和脚本语言

    HFSS的新旧版本模型转换功能为用户提供了极大的便利,不仅能够确保大部分预处理数据被准确地迁移,还能让用户轻松地利用新版本的强大功能。同时,通过了解HFSS提供的脚本语言和参数优化工具,用户可以进一步提高工作...

    从SQL SERVER到MY SQL的数据库迁移研究.pdf

    通过ODBC可以实现不同数据库管理系统之间的数据迁移。 3. 利用脚本编辑转换,这通常要求对源数据库和目标数据库的结构和语法有深入了解,然后通过编写特定的脚本来转换数据,以适应目标数据库的结构。 在研究中,...

    oracle到informix数据库移植研究

    3. **数据维护阶段**:数据迁移完成后,持续的数据跟踪与监控是必要的,以确保移植后的数据能够正确响应业务需求。同时,应定期进行数据备份,建立应急恢复机制,以防万一。 #### 关键问题:数据类型转换与日期字段...

    Oracle 数据库Storage存储迁移笔记

    "PRO_MStockBalance_init.prc"文件名中的“_init”可能表示这是一个初始化脚本,用于在迁移过程中设置或初始化库存余额(MStockBalance)的数据。这可能是一个PL/SQL过程,用于填充新存储结构中的库存数据,确保迁移...

    升级文件及脚本程序

    - 数据迁移:如果有数据格式的改变,需要进行数据迁移,以保持数据的完整性。 - 错误处理:确保脚本具有错误处理机制,遇到问题时能够优雅地失败,而不是导致整个数据库崩溃。 在“AutoUpdate-”这个压缩包文件中,...

    IBM Portal 6.1数据库迁移与管理.pdf

    4. **运行校验脚本与迁移脚本任务**:执行脚本来验证数据并迁移数据。 5. **迁移后设置**:迁移完成后进行必要的设置和优化。 ##### 4.2 定制表空间迁移DB2 定制表空间迁移DB2适用于需要保持原有表空间结构的情况。...

    crarl-migration:crarl.it 的数据迁移

    1. **源代码**:可能包含用JavaScript编写的迁移脚本,这些脚本负责读取旧系统的数据,处理后存储到新系统中。脚本可能使用了Node.js框架,如Express,以便于处理HTTP请求和响应。 2. **配置文件**:可能包含数据库...

    infromix迁移指南

    - **应用场景**:适用于小规模数据迁移,或者在数据量不大但需要频繁迁移的场景。 - **LOAD**:与 UNLOAD 相反,用于将外部文件中的数据导入到 Informix 数据库。 - **操作步骤**: 1. 使用 `LOAD` 命令指定数据...

    ORACLE数据库冷备份方式迁移.pdf

    Oracle数据库的冷备份迁移是一种在数据库关闭状态下进行的迁移方法,主要涉及数据库文件的复制、参数文件的调整以及可能的...虽然它可能不适合实时系统,但在合适的环境中,这种方法可以提供一个安全且可靠的迁移策略。

    MySQL数据库迁移快速导出导入大量数据

    例如,一个从Windows平台迁移到Linux平台的项目中,可以先创建一个包含所有表名的`tables.txt`文件,然后用批处理脚本遍历这个文件,对每个表执行`SELECT INTO OUTFILE`导出数据。在Linux端,通过读取`tables.txt`,...

    openssh一键升级的脚本,全干货

    6. **服务迁移**:停止旧版本的服务,启动新版本的服务,确保所有功能正常运行。 7. **测试验证**:升级后,通过尝试连接和运行各种命令来验证OpenSSH服务是否正常工作。 8. **日志监控**:密切关注升级后的系统日志...

Global site tag (gtag.js) - Google Analytics