Project

rdb_csv

0.0
No commit activity in last 3 years
No release in over 3 years
Rdbcsv supoorts mainly MySQL and PostgreSQL within reasonable range.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

>= 0
>= 0
 Project Readme

RdbCSV

RDB dumped csv/tsv can be read and write.

Rdbcsv supoorts mainly MySQL and PostgreSQL within reasonable range.

Requirements

  • Ruby 2.4+

Installation

gem install rdb_csv

or, add this line in your Gemfile

gem 'rdb_csv'

Usage

RdbCSV is similar to the standard CSV class.

database type: argment db. The default is to use standard CSV class.

delimiter type: argment delimiter The default is to use \t, because the dafault delimiter for dump data is \t.

MySQL

Use INTO OUTFILE to safely dump CSV,TSV on MySQL.

require 'rdb_csv'

# TSV
tsv_path = "your_dump_file_path.tsv"
RdbCSV.open(tsv_path, db: :mysql, delimiter: "\t") do |tsv|
  tsv.each do |row|
    p row
  end
end

# CSV
csv_path = "your_dump_file_path.tsv"
RdbCSV.open(csv_path, db: :mysql, delimiter: ",") do |csv|
  csv.each do |row|
    p row
  end
end

# Use foreach
RdbCSV.foreach(csv_path, db: :mysql, delimiter: ",") do |row|
  p row
end

PostgreSQl

Use COPY to safely dump CSV,TSV on PostgreSQL.

require 'rdb_csv'

# TSV
tsv_path = "your_dump_file_path.tsv"
RdbCSV.foreach(tsv_path, db: :postgresql, delimiter: "\t") do |row|
  p row
end

# CSV
csv_path = "your_dump_file_path.csv"
RdbCSV.foreach(csv_path, db: :postgresql, delimiter: ",") do |row|
  p row
end

Convert MySQL to PostgreSQl

require 'rdb_csv'

mysql_rows = []

mysql_tsv_path = "your_mysql_dump_file_path.tsv"
RdbCSV.foreach(mysql_tsv_path, db: :mysql, delimiter: "\t") do |row|
  mysql_rows << row
end

postgres_tsv_path = "your_postgres_dump_file_path.tsv"
RdbCSV.open(postgres_tsv_path, "w", db: :postgresql, delimiter: "\t") do |tsv|
  mysql_rows.each do |mysql_row|
    tsv << mysql_row
  end
end