我有多个.sql
文件,其中可能包含多个Alter table语句、视图定义或plsql
函数定义。我想在PostgreSQL DB上应用完整的sql
文件。它应该类似于
psql -h "HostName" -p "Port" -U "userName" -d "pwd" -f "Sql file location"
我尝试过使用PG.connect.execute
,通过这种方式,我需要加载文件并分别执行每条语句。有没有办法在Ruby语言中执行整个sql
文件?
发布于 2016-10-28 06:50:46
有两个用于与PostgreSQL数据库通信的API,这两个API都可以作为gem使用。pg gem提供了到Postgres的纯Ruby绑定。
示例:此代码假设您正在通过TCP/IP在本地计算机的端口5432上访问数据库:
gem 'pg'
require 'pg'
def with_db
db = PG.connect(
dbname: 'dbname',
user: 'user',
password: 'password'
)
begin
yield db
ensure
db.close
end
end
sql = File.open('path/to/your_sql.sql', 'rb') { |file| file.read }
with_db do |db|
begin
db.exec(sql)
rescue PG::Error
#####
end
end
有关更多信息,请访问check this
https://stackoverflow.com/questions/40298692
复制