标签: sequel

如何从现有的postgres表转储创建续集迁移?

我想知道在续集中创建基于postgres现有表转储的迁移的最佳方法.我意识到我必须自己编写down方法来删除表/函数/序列,但有没有办法告诉续集上传以加载现有的sql脚本并执行脚本中的所有内容?

编辑:以防万一不清楚,这是使用ruby Sequel SQL库/ gem

ruby migration postgresql sequel

2
推荐指数
1
解决办法
1700
查看次数

Padrino和RSpec不和Sequel合作?

最近,我开始深入研究Ruby MVC,以便找到最好,最快,最小的框架来构建我的应用程序.由于对Rails不满意,我决定尝试Padrino.我也是第一次尝试使用Outside-in TDD获取完整的应用程序,因此能够为所有组件编写测试至关重要.不幸的是,我无法在Padrino中制作模型,所以我想知道它是否只是测试版软件的原因,或者只是我的错误.

我首先使用Cucumber和RSpec创建我的项目进行测试,然后为我的ORM创建Sequel.

$ padrino g project test -d sequel -t cucumber -c sass -b
Run Code Online (Sandbox Code Playgroud)

接下来,我创建一些模型和迁移:

$ padrino g model user

# ./db/migrate/001_create_users.rb
Sequel.migration do
  change do
    create_table :users do
      primary_key :id
      String :name
      String :password
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

接下来,当然是规范.例如,只是简单的事情:

# ./spec/models/user_spec.rb
require 'spec_helper'

describe User do
  it 'can be created' do
    user = User.create
  end
end
Run Code Online (Sandbox Code Playgroud)

现在,迁移并运行规范:

$ padrino rake sq:migrate:up
$ rspec spec

F

Failures:

  1) User can be created
     Failure/Error: user = User.create
     Sequel::DatabaseError: …
Run Code Online (Sandbox Code Playgroud)

ruby model-view-controller rspec padrino sequel

2
推荐指数
1
解决办法
995
查看次数

续集:如何获取数据集列的数据类型

如何获取数据集列的数据类型.或者更一般:如何获取数据集的架构?

想象一下我有以下情况:

require 'sequel'
DB = Sequel.sqlite()
DB.create_table(:data){
    nvarchar :key
    timestamp :timestamp
    Date :date
}

sel = DB[:data].select(:key, :timestamp)
Run Code Online (Sandbox Code Playgroud)

现在我想知道,timestamp我选择的列中的数据类型.

我想得到类似的东西Sequel::Dataset#columntype(column).

我做了这样的解决方案:

module Sequel
  class Dataset
    def schema()
      schema = []
      self.db.schema(self).each{|colid, coldef|
        next unless self.columns.include?(colid)
        schema << [colid, coldef]
      }
      schema
    end

    def columntype(colname)
      self.schema.each{|colid, coldef|
        next unless colid == colname
        return coldef[:type]
      }
      raise ArgumentError, "#{colname} not part of #{self.inspect}"
    end
  end
end

p sel.schema #-> [[:key, {:allow_null=>true, :default=>nil, :primary_key=>false,....
p sel.columntype(:timestamp) #-> :datetime …
Run Code Online (Sandbox Code Playgroud)

ruby dataset sequel

2
推荐指数
1
解决办法
2024
查看次数

- 续集/适配器/(续集:: AdapterNotFound)

我试图使用Sequel.connect(database_name)连接到sqlite数据库它返回以下错误:

DEBUG OmlSqlSource: Connecting Sequel

/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': LoadError: cannot load such file -- sequel/adapters/ (Sequel::AdapterNotFound)
Run Code Online (Sandbox Code Playgroud)

ruby sqlite sequel

2
推荐指数
1
解决办法
5164
查看次数

续集 - 查询多对多关联

我在为以下场景构建正确的模型、关联和查询时遇到问题,然后使用 Sequel 和 Ruby 将结果作为 JSON 返回。

数据库结构___

您可以创建书籍列表。每个图书馆都有书。由以下定义:

db.create_table(:books) do
  primary_key :id
  String :name
  String :author
  DateTime :created
end

db.create_table(:libraries) do
  primary_key :id
  String :name
  String :city
  String :state
  DateTime :created
end

db.create_table(:libraries_books) do
  Integer :library_id
  Integer :book_id
  primary_key [:library_id, :book_id]
end


class Library < Sequel::Model(:libraries)

  many_to_many :libraries_books, :left_key=>:library_id, :right_key=>:book_id, :join_table=>:libraries_books
  one_to_many  :libraries_books, :key=>:library_id

end

class LibraryBook < Sequel::Model(:libraries_books)

  many_to_one  :libraries
  many_to_one  :books

end
Run Code Online (Sandbox Code Playgroud)

我正在尝试确定访问给定图书馆所有书名的正确方法。我最初尝试遵循 Sequel Associations 指南,但无法弄清楚如何使用带有关联的 LibraryBook 来获取图书馆的所有书籍并加入 Book 模型以获取正确的列。

在使用了所描述的一些方法之后,我尝试创建自己的查询:

LibraryBook.select(:books.*)
           .join_table(:inner, :libraries, :id => :library_id) …
Run Code Online (Sandbox Code Playgroud)

ruby json associations sequel

2
推荐指数
1
解决办法
2539
查看次数

将原始 SQL 查询的结果转换为 JSON(和 CSV)

我需要从旧版 SQL Server 数据库中提取数据并将其转换为 JSON。我已经编写了 SQL 查询(对于旧版本的报告,我正在替换)可以准确地提取我需要的内容。

将 ActiveRecord 对象转换为 JSON(和 CSV)当然很容易,但我看不出有什么好方法可以做我需要做的事情,因为所有涉及原始 SQL 的 ActiveRecord 方法似乎都旨在返回 ActiveRecord 对象,并且这些数据在逻辑上不一定对应于一个类,我不需要将它保存在任何额外的地方。我只想执行 SQL 查询并返回 JSON 和 CSV 并完成它。

ruby activerecord ruby-on-rails sequel ruby-datamapper

2
推荐指数
1
解决办法
4492
查看次数

Ruby Sequel错误,表已经存在

我意识到我无法运行教程(http://sequel.jeremyevans.net/)两次.

第一次,它按照我们的预期运行.但第二次,它引发了一个错误

SQLite3::SQLException: table `items` already exists (Sequel::DatabaseError)
Run Code Online (Sandbox Code Playgroud)

我理解错误,但我不知道如何解决它.

如何在不丢失其包含的数据的情况下打开数据库,并且仍然能够运行教程?

ruby sql sequel

2
推荐指数
1
解决办法
1719
查看次数

Ruby Sequel模型,用于验证创建而不是更新

我如何才能避免update在进行验证时进行验证create?例如:

我希望有一个image现场有presence validationcreate.但是想要避免它edit并且在没有变化的情况下假设先前的值.

注意:我正在使用Padrino.

ruby sequel

2
推荐指数
1
解决办法
983
查看次数

如何使用续集声明 postgresql json/jsonb 字段?

我坚持这一点。无法在文档中的任何地方找到如何声明诸如 inet 和 jsonb 或 json 之类的空间数据类型。

红宝石 2.4.1,续集 4.47

带有require 'sequel'.

声明如

DB.create_table :requests do
  primary_key :id
  foreign_key :client_id, :clients
  foreign_key :service_id, :services
  DateTime :created_at, null: false
  DateTime :answered_at, null: false
  JsonBType :request, null: false
end
Run Code Online (Sandbox Code Playgroud)

ruby postgresql sequel

2
推荐指数
1
解决办法
711
查看次数

如何使用 Sequel 运行 Postgres psql“斜线”命令

使用Sequel,是否可以运行 PostgreSQL“斜线”命令,例如\d,\dn\copy table...?

我尝试使用

DB.run(‘\dn’)
Run Code Online (Sandbox Code Playgroud)

但是我遇到了语法错误,因为,大概是 Sequel 正在尝试解析 SQL,或者 Postgres 无法理解 SQL,因为这些是由psql应用程序处理的命令。

ruby postgresql sequel psql

2
推荐指数
1
解决办法
130
查看次数