Sequel é muito mais do que um ORM. É uma solução completa para interagir com bancos de dados de Ruby, gestão e interface com banco de dados inteiro, e não apenas seus dados.
Os desenvolvedores podem usar o console IRB ou própria DSL do Sequel para montar rapidamente bancos de dados, gerenciar esquemas, construir consultas SQL, transações executadas, buscar resultados, e converter os resultados para um formato maleável Ruby.
Ele funciona como uma camada de abstração entre Ruby e SQL, ajudando os desenvolvedores com habilidades em Ruby, mas com conhecimento de SQL menor.
bancos de dados e ferramentas de suporte:
ADO
Amalgalite
CUBRID
DataObjects
DB2
DBI
Firebird
IBM_DB
Informix
JDBC
MySQL
mysql2
ODBC
OpenBase
A Oracle
PostgreSQL
SQLAnywhere
SQLite3
Swift
TinyTDS
O que é novo nesta versão:
- Faça dataset.call_sproc (: inserção) trabalho no adaptador JDBC
- Adicionar plug-in update_refresh, para atualizar uma instância de modelo ao atualizar
- Adicionar delay_add_association plugin, para atrasar add_ * método chama em novos objetos até que depois de salvar o objeto
- Adicionar plug-in validate_associated, para a validação de objetos associados ao validar o objeto atual
- Faça Postgres :: JSONBOp # [] e #get_text retornar instâncias JSONBOp
- Remova o fdbsql, jdbc / fdbsql e adaptadores OpenBase
- Banco de Dados # transação agora retorna bloco de valor de retorno se: rollback = & # x3e;: sempre é usado
- Permitir PostgreSQL: cadeias de // conexão como aliases para postgres: //, para compatibilidade com libpq
- Faça Model # move_to na lista de plug-in lidar com alvos fora do alcance, sem levantar uma exceção
- Faça Banco de Dados # add_named_conversion_proc no PostgreSQL procs conversão alça para tipos de enum
O que é novo na versão 4.24.0:
- Faça dataset.call_sproc (: inserção) trabalhar em o adaptador JDBC
- Adicionar plug-in update_refresh, para atualizar uma instância de modelo ao atualizar
- Adicionar delay_add_association plugin, para atrasar add_ * método chama em novos objetos até que depois de salvar o objeto
- Adicionar plug-in validate_associated, para a validação de objetos associados ao validar o objeto atual
- Faça Postgres :: JSONBOp # [] e #get_text retornar instâncias JSONBOp
- Remova o fdbsql, jdbc / fdbsql e adaptadores OpenBase
- Banco de Dados # transação agora retorna bloco de valor de retorno se: rollback = & # x3e;: sempre é usado
- Permitir PostgreSQL: cadeias de // conexão como aliases para postgres: //, para compatibilidade com libpq
- Faça Model # move_to na lista de plug-in lidar com alvos fora do alcance, sem levantar uma exceção
- Faça Banco de Dados # add_named_conversion_proc no PostgreSQL procs conversão alça para tipos de enum
O que é novo na versão 4.22.0:
- Faça jdbc / SQLAnywhere corretamente definido: entrada auto_increment em hashes de esquema
- Adicionar Model # cancel_action para cancelar ações antes de ganchos, em vez de ter os ganchos return false
- O apoio não definir @@ wait_timeout no MySQL via: timeout = & # x3e; opção de banco de dados nulo
- Adicionado accessed_columns plugin, gravação quais colunas tenham sido acessados por uma instância de modelo
- Use migração de versão correta ao utilizar IntegerMigrator com: allow_missing_migration_files
- Faça Dataset # união, #intersect e #except tratar automaticamente conjuntos de dados com SQL puro
- column_conflicts Adicionado plug-in para tratar automaticamente colunas que entram em conflito com nomes de métodos
- Adicionado Model # get_column_value e #set_column_value obter / definir os valores da coluna
O que é novo na versão 4.21.0:
- Faça jdbc / SQLAnywhere corretamente definido: entrada auto_increment em hashes de esquema
- Adicionar Model # cancel_action para cancelar ações antes de ganchos, em vez de ter os ganchos return false
- O apoio não definir @@ wait_timeout no MySQL via: timeout = & # x3e; opção de banco de dados nulo
- Adicionado accessed_columns plugin, gravação quais colunas tenham sido acessados por uma instância de modelo
- Use migração de versão correta ao utilizar IntegerMigrator com: allow_missing_migration_files
- Faça Dataset # união, #intersect e #except tratar automaticamente conjuntos de dados com SQL puro
- column_conflicts Adicionado plug-in para tratar automaticamente colunas que entram em conflito com nomes de métodos
- Adicionado Model # get_column_value e #set_column_value obter / definir os valores da coluna
O que é novo na versão 4.19.0:
- Faça jdbc / SQLAnywhere corretamente definido: entrada auto_increment em hashes de esquema
- Adicionar Model # cancel_action para cancelar ações antes de ganchos, em vez de ter os ganchos return false
- O apoio não definir @@ wait_timeout no MySQL via: timeout = & # x3e; opção de banco de dados nulo
- Adicionado accessed_columns plugin, gravação quais colunas tenham sido acessados por uma instância de modelo
- Use migração de versão correta ao utilizar IntegerMigrator com: allow_missing_migration_files
- Faça Dataset # união, #intersect e #except tratar automaticamente conjuntos de dados com SQL puro
- column_conflicts Adicionado plug-in para tratar automaticamente colunas que entram em conflito com nomes de métodos
- Adicionado Model # get_column_value e #set_column_value obter / definir os valores da coluna
O que é novo na versão 4.18.0:
- Faça Dataset # vazio? funciona quando o conjunto de dados é ordenada por uma expressão não-coluna.
- Fixed passando um valor de hash para:. Opção de associação ansiosos
- Tratar todos os PG :: exceções ConnectionBad como erros de desconexão no adaptador postgres.
- Adicionado:. Chave auto incremento para informações esquema para as colunas de chave primária
- Fixado manipulação de esquema tabelas qualificados em associações many_through_many.
O que é novo na versão 4.16.0:
- Faça Banco de Dados # create_table? e #create_join_table? Não use SE NÃO EXISTE se os índices estão sendo adicionados
- Dataset # distinta agora aceita blocos de linhas virtuais
- Reconhecer erros de desconexão o adaptador postgres quando SSL é usado
- Parar a conversão de 'valores padrão "para valores padrão nil no MySQL
- Adicionado Model # qualified_pk_hash, para o regresso de um hash com as chaves pk qualificados
- Faça validates_unique usar uma chave primária qualificado se o conjunto de dados está associado
- Faça Sequel :: Model.cache_associations = false ignorar cache do esquema do banco de dados ao carregar o esquema
- Faça Banco de Dados # foreign_key_list trabalho em Microsoft SQL Server 2005
- Faça create_table com: opção estrangeira reversível no PostgreSQL
O que é novo na versão 4.9.0:
- aceleração maciça por analisador matriz PostgreSQL
- Adicionar extensão current_datetime_timestamp, para instâncias Time / DateTime atuais que estão literalizada como CURRENT_TIMESTAMP
- Reconhecer violações adicionais restrição exclusiva em SQLite
- Não remova o valor da coluna ao validar atributos aninhados para one_to_ * associação onde a associação de chave estrangeira é a chave primária do modelo
- Adicionar Conjunto de Dados # disable_insert_returning no PostgreSQL para pular uso implícito de retornar
- otimizar automaticamente Model. [], .with_pk E .with_pk! para modelos com chaves compostas
- otimizar automaticamente Model. [] Quando chamado com um hash
- Reconhecer CONFIRA violações de restrição em versões mais recentes do SQLite
- Não tente carga ansioso ao chamar # colunas do Conjunto de Dados no plugin eager_each
- Suporte: opção de driver para o adaptador JDBC, para a especificação da classe do driver para os casos em getConnection não funciona
O que é novo na versão 4.3.0:
- Reconhecer outro erro de desconexão na jdbc / adaptador as400
- Faça Dataset # qualificar e Sequel.delay trabalhar juntos
- Reconhecer tipo Citext como corda no PostgreSQL
- chaves compostas apoio no plug-in rcte_tree
- chaves compostas apoio no plug-in tree
- Faça Migrator.migrator_class pública
- Faça PostgreSQL trabalho conjunto literalização vazio corretamente em PostgreSQL & # X3C; 8,4
- extensões Sequel Adicionado guia
- plugins modelo Adicionado guia
O que é novo na versão 4.2.0:
- Adicionado de banco de dados # supports_partial_indexes? para verificar se há suporte índice parcial.
- O plugin static_cache agora não permite salvar / destruindo se a:. Congelada = & # x3e; falsa opção não é usada
- Suporte: congelada = & # x3e; falsa opção no plug-in static_cache, por ter novas instâncias retornado ao invés de instâncias em cache congelados .
- extensão Adicionado pg_static_cache_updater banco de dados para escutar alterações nas tabelas e atualizar static_cache caches automaticamente.
- Adicionado extensão mssql_emulate_lateral_with_apply para emular consultas lateral usando CROSS / EXTERIOR APLICAR.
- consultas apoio lateral via Dataset # lateral.
O que é novo na versão 4.1.1:
- select_map fixo, select_order_map e métodos single_value sobre eager_graphed conjuntos de dados.
O que é novo na versão 4.0.0:
- corretamente analisar chaves primárias compostas em SQLite 3.7.16 +.
- Reconhecer outro erro de desconexão do adaptador jdbc / oracle.
- Adicionado pg_json_ops extensão para chamar funções JSON e operadores no PostgreSQL 9.3 +.
- Handle não-JSON simples strings, inteiros, e carros alegóricos em colunas PostgreSQL JSON em extensão pg_json.
- Dataset # a partir de agora aceita blocos de linhas virtuais.
- Adicionado banco de dados # refresh_view no PostgreSQL para suportar refrescante visualizações materializadas.
- Suporte a banco de dados # drop_view:. Opção if_exists no PostgreSQL
- Suporte a banco de dados # {criar, gota} _view: opção materializada, para a criação visualizações materializadas no PostgreSQL 9.3 + .
- Suporte a banco de dados # create_view: opção recursiva para a criação de pontos de vista recursiva no PostgreSQL 9.3 + .
- Apoiar o # create_view Base de dados: opção de colunas para a utilização de colunas explícitas .
O que é novo na versão 3.47.0:
- Não falhar por falta proc conversão em pg_typecast_on_load plug-in
- Rename PGRangeOp #starts_before e #ends_after para #ends_before e #starts_after
- Adicionar banco de dados # supports_schema_parsing? para verificação de esquema de análise de suporte
- Handle hstore [] tipos de PostgreSQL se utilizando pg_array e pg_hstore extensões
- Não reponha procs conversão ao carregar pg_ * extensões
- tipos de domínio Handle ao analisar o esquema no PostgreSQL
- tipos de domínio Handle em tipos compostos na extensão pg_row
O que é novo na versão 3.43.0:
- Mova o suporte #meta_def para banco de dados, conjunto de dados, e Modelo para a extensão meta_def.
- Fix banco de dados # copy_into em jdbc / postgres quando uma exceção é levantada.
- Adicionar extensão core_refinements, fornecendo versões de refinamento de extensões centrais da sequela.
- Faça Banco de Dados # copy_into levantar uma DatabaseError se o banco de dados sinaliza um erro no adaptador de postgres.
- Definir respond_to_missing? onde method_missing é definida eo objeto suporta respond_to?.
- Permitir procs lambda com 0 arity como blocos de linhas virtuais no Ruby 1.9.
O que é novo na versão 3.42.0:
- Se uma exceção ocorre enquanto cometer uma transação, tentativa a reversão.
- tamanhos das colunas de suporte configuração de string padrão em uma base per-Database via default_string_column_size.
- Redefinir Model.instance_dataset ao estender conjunto de dados do modelo.
- Faça o trabalho force_encoding plugin com cordas congelados.
- Adicionado de banco de dados # fazer no PostgreSQL para usando a instrução execução do bloco FAZER código anônimo.
- Model.dataset_methods removidos.
O que é novo na versão 3.41.0:.
- bin Adicionado / guia de uso sequela
- Faça Dataset # reversa e #reverse_order aceitar blocos de linhas virtuais.
- Adicionado Sequel.delay para avaliação adiada genérico.
- Faça validações singularidade lidar corretamente com valores nulos.
- Suporte:. Opção não explorada para create_table no PostgreSQL
O que é novo na versão 3.39.0:.
- Corrija defaults_setter para definir valores padrão false
- Corrija consulta sequência de série no banco de dados # primary_key_sequence no PostgreSQL.
- Adicionar banco de dados # copy_into ao usar adaptador postgres com motorista pg, para inserções muito rápidas em tabelas.
- Combine várias operações ALTER_TABLE em uma única consulta, sempre que possível no MySQL e PostgreSQL.
- Manipular conjuntos de operações ALTER_TABLE sobre MySQL e MSSQL onde as operações posteriores dependem as anteriores.
- Adicionar constraint_validations plugin para validações automáticas de constrangimentos definidos pela extensão.
- Adicionar extensão constraint_validations para definir restrições de banco de dados semelhantes a validações.
- Adicionar banco de dados # supports_regexp? para verificação de apoio de expressão regular.
- Adicionar Sequel.trim para a função de plataforma de compensação cruzada.
- Adicionar Sequel.char_length para a função de plataforma char_length cruz.
- Fixação cache da versão do servidor MySQL.
O que é novo na versão 3.38.0:
- Sequel agora reconhece a dupla (x, y) e dupla (x, y) sem assinatura tipos MySQL.
- Os subadapters rápidas exigem agora swift-db- * em vez de si rápida.
- Adicionar:. Textsize opção para tinytds adaptador para substituir o TEXTSIZE padrão
- apoiar um método de identificador de saída no adaptador rápida.
- Adicionar Model # to_hash como um alias para modelar valores #.
- Ao carregar múltiplos pg_ * extensões via extensão de banco de dados #, repor apenas a procs de conversão uma vez.
- Não permita modelo typecasting de cadeia para matriz postgres, hstore, ou tipos compostos.
- Adicionar pg_typecast_on_load plugin para converter tipos de PostgreSQL avançados na carga da {jdbc, fazer, rápida} / postgres adaptadores.
- Faça todos os adaptadores que se conectam ao PostgreSQL procs conversão loja de tipo.
- Adicionar tipo oid ao esquema de coluna no PostgreSQL.
O que é novo na versão 3.37.0:
- Permitir especificando base de eager_graph apelido em uma chamada por base usando um AliasedExpression
- Permitir bin / sequela de respeitar várias opções -l para fazer login em múltiplos arquivos
- Corretamente lidar com casos em que SCOPE_IDENTITY é nulo o adaptador ODBC / MSSQL
- Adicionar extensão pg_interval, para devolver tipos de intervalo como instâncias ActiveSupport :: Duração
- Salve um novo objeto associado one_to_one uma vez, em vez de duas vezes nos nested_attributes plug-in
- Não adicionar condição de filtro desnecessários ao passar um novo objeto para um método one_to_one setter
- Diferenciar entre referências de coluna e referências de método em associações many_through_many
- Use: qualificar = & # x3e;: opção de fundo quando associação de tabelas em conjuntos de dados de associação do modelo
O que é novo na versão 3.36.1:.
- adaptador jdbc fixo quando DriverManager getConnection # falha
O que é novo na versão 3.35.0:
- Lidar corretamente com a análise de esquema para as tabelas em outros bancos de dados MySQL.
- Suporte DSL Adicionado para o operador módulo (%), semelhante aos operadores bit a bit.
- Fixed possíveis problemas de thread-segurança em implementações de rubi não GVL.
- Permitir truncamento de várias mesas ao mesmo tempo no PostgreSQL.
- Permitir truncar para tomar um: cascata,: apenas, e:. Opções de reinicialização no PostgreSQL
- Permitir JSON e XML serializers para apoiar: a opção de matriz no método de classe to_json para serializar matriz existente de instâncias de modelo .
- Adicionado plug-in sujo, o que poupa o valor inicial da coluna quando o valor é alterado.
O que é novo na versão 3.34.1:.
- Corrigido o erro na otimização de lookup chave primária
O que é novo na versão 3.33.0:
- Adicionar capacidade de forçar ou transações desativar completamente na migrators usando a opção: use_transactions
- Adicionar capacidade de desligar as transações para as migrações chamando no_transaction dentro do bloco Sequel.migration
- Permitir escolher especificamente quais migrador de usar através TimestampMigrator.apply ou IntegerMigrator.apply
- Adicionar extensão arbitrary_servers para permitir o uso de servidores arbitrárias / cacos, fornecendo um hash de opções como o servidor
- Adicionar extensão server_block para acessar banco de dados escopo dentro do bloco a um determinado servidor padrão / caco
- Respeito: opção de coluna reunir no MySQL
- Use mysql2 :: Client :: FOUND_ROWS obter o número exato de linhas encontradas na placa mysql2
- Use Mysql Informação # para obter o número exato de linhas encontradas na placa mysql
- Faça adaptador simulada com SQL específica de uso dialeto padrões apropriados para citar identificadores
- lista Faça o plugin definir automaticamente o valor do campo posição sobre a criação se já não estiver definido
- Adicionar banco de dados # ajustam-se em SQLite integer_booleans para armazenar booleans como inteiros
- colunas Typecast armazenados como inteiros / flutua no adaptador SQLite
- No plug-in instance_hooks, (antes | depois) _ * _ métodos de instância gancho agora retornar auto
- Handle NaN, Infinito, e -Infinity flutua sobre PostgreSQL
O que é novo na versão 3.32.0:
- Faça serialization_modification_detection trabalho de encaixe corretamente com novos objetos e depois guardar objectos existentes.
- Faça refresca após a criação do modelo limpar os valores desseriadas no plugin de serialização.
- Adicionar Conjunto de Dados # update_ignore em MySQL, para usar UPDATE IGNORE nas consultas.
- Permitir select_map / select_order_map tomar tanto um argumento de coluna e um bloco.
- Corrija manuseio de blocos linha virtual no select_map / select_order_map se o bloco retorna um array.
- Adicionar configuração Sequel.empty_array_handle_nulls, pode ser definida como falsa para uma possível melhor desempenho em alguns bancos de dados.
- Alterar excluir (: b = & # x3e; []) não retornar linhas onde b é NULL .
- Suporte ActiveModel 3.2 no plugin active_model, adicionando suporte para to_partial_path.
- métodos Fix metadados (por exemplo, tabelas) no Oracle, quando os métodos de entrada identificador personalizado são usados.
- Fix banco de dados # índices em DB2.
O que é novo na versão 2.5:
- Adicionar #set_defaults e #set_overrides conjunto de dados, usados para definir o escopo do Os valores utilizados na inserção declarações / update
- Permitir Models usar a cláusula RETURNING ao inserir registros no PostgreSQL
- Aumentar Sequel :: DatabaseError vez de Sequel genérico :: erro para erros de banco de dados, não engolir tracebacks
- Use INSERT ... RETORNO ... com PostgreSQL 8.2 e superior
- Faça insert_sql, delete_sql e update_sql respeitar a opção: sql
- Padrão para a conversão de 2 anos dígito, utilize Sequel.convert_two_digit_years = false para voltar ao comportamento antigo
- Faça o adaptador PostgreSQL com o uso async_exec motorista pg, por isso não bloqueia todo o intérprete
- Faça os geradores de esquema de suporte primário composto e chaves estrangeiras e restrições exclusivas
- Trabalhe com a versão 2008/08/17 da gema pg
- Não permitir abuso de sintaxe da função SQL para tipos (use: Tipo = & # x3e;: varchar,: size = & # x3e; 255 em vez de: type = & # x3e;: varchar [255])
- nomes de índice das citações ao criar ou remover um índice
- Não tem métodos coluna acessor substituir o plugin métodos de instância
- Permitir validação de vários atributos de uma vez, com suporte embutido para a verificação de exclusividade de várias colunas
- Em adaptador PostgreSQL, corrigir a inserção de uma linha com um valor de chave primária dentro de uma transação
- Permitir before_save e before_update para afetar as colunas guardadas por save_changes
- Faça Dataset # single_value trabalho durante a representação, que corrige a contagem e paginar em conjuntos de dados representados graficamente
Requisitos :
- Rubi 1.8.7 ou superior
Comentários não encontrado