Skip to content

rails 8 support #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 79 additions & 2 deletions lib/active_record/connection_adapters/libsql_adapter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,85 @@ def new_client(config)

def initialize(...)
super
@connection_parameters = @config.reject { |k| k == :adapter }
@connection_parameters[:url] = @connection_parameters[:host]
@connection_parameters = @config.reject { |k| k == [:adapter, :database] }
@connection_parameters[:url] = @connection_parameters.delete(:host)

unless @connection_parameters[:url].to_s.starts_with?('libsql://')
@connection_parameters[:url] = 'libsql://' + @connection_parameters[:url]
end

@memory_database = (@connection_parameters[:path] == ":memory:")
end

def database_exists?
@connection_parameters[:path] == ":memory:" || File.exist?(@connection_parameters[:path].to_s)
end

def supports_ddl_transactions?
true
end

def supports_savepoints?
true
end

def supports_transaction_isolation?
true
end

def supports_partial_index?
true
end

def supports_expression_index?
true
end

def requires_reloading?
true
end

def supports_foreign_keys?
true
end

def supports_check_constraints?
true
end

def supports_views?
true
end

def supports_datetime_with_precision?
true
end

def supports_json?
true
end

def supports_common_table_expressions?
true
end

def supports_insert_returning?
true
end

def supports_insert_on_conflict?
true
end
alias supports_insert_on_duplicate_skip? supports_insert_on_conflict?
alias supports_insert_on_duplicate_update? supports_insert_on_conflict?
alias supports_insert_conflict_target? supports_insert_on_conflict?

def supports_concurrent_connections?
!@memory_database
end

def supports_virtual_columns?
true
end

def connect
Expand Down