aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb11
-rw-r--r--activerecord/lib/active_record/railties/databases.rake9
-rw-r--r--railties/lib/rails/commands/rails.rb17
-rw-r--r--railties/lib/rails/tasks/annotations.rake2
-rw-r--r--railties/lib/rails/tasks/framework.rake75
5 files changed, 36 insertions, 78 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
index d933bc924d..f295af16f0 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
@@ -24,6 +24,17 @@ module ActiveRecord
module ConnectionAdapters #:nodoc:
class SQLite3Adapter < SQLiteAdapter # :nodoc:
+
+ # Returns the current database encoding format as a string, eg: 'UTF-8'
+ def encoding
+ if @connection.respond_to?(:encoding)
+ @connection.encoding[0]['encoding']
+ else
+ encoding = @connection.send(:get_query_pragma, 'encoding')
+ encoding[0]['encoding']
+ end
+ end
+
end
end
end
diff --git a/activerecord/lib/active_record/railties/databases.rake b/activerecord/lib/active_record/railties/databases.rake
index 2ef8676f39..4343bef3d4 100644
--- a/activerecord/lib/active_record/railties/databases.rake
+++ b/activerecord/lib/active_record/railties/databases.rake
@@ -26,8 +26,12 @@ namespace :db do
end
end
- desc 'Create the database defined in config/database.yml for the current Rails.env'
+ desc 'Create the database defined in config/database.yml for the current Rails.env - also makes test database if in development mode'
task :create => :load_config do
+ # Make the test database at the same time as the development one
+ if Rails.env == 'development'
+ create_database(ActiveRecord::Base.configurations['test'])
+ end
create_database(ActiveRecord::Base.configurations[Rails.env])
end
@@ -196,6 +200,9 @@ namespace :db do
when 'postgresql'
ActiveRecord::Base.establish_connection(config)
puts ActiveRecord::Base.connection.encoding
+ when 'sqlite3'
+ ActiveRecord::Base.establish_connection(config)
+ puts ActiveRecord::Base.connection.encoding
else
puts 'sorry, your database adapter is not supported yet, feel free to submit a patch'
end
diff --git a/railties/lib/rails/commands/rails.rb b/railties/lib/rails/commands/rails.rb
index 5f34876f1d..9597e2e7e6 100644
--- a/railties/lib/rails/commands/rails.rb
+++ b/railties/lib/rails/commands/rails.rb
@@ -6,13 +6,14 @@ HELP_TEXT = <<-EOT
usage: rails COMMAND [ARGS]
The most common rails commands are:
- generate Generate new code (short-cut alias: "g")
- console Start the Rails console (short-cut alias: "c")
- server Start the Rails server (short-cut alias: "s")
+ generate Generate new code (short-cut alias: "g")
+ console Start the Rails console (short-cut alias: "c")
+ server Start the Rails server (short-cut alias: "s")
+ dbconsole Start a console for the database specified in config/database.yml
+ (short-cut alias: "db")
In addition to those, there are:
application Generate the Rails application code
- dbconsole Start a console for the database specified in config/database.yml
destroy Undo code generated with "generate"
benchmarker See how fast a piece of code runs
profiler Get profile information from a piece of code
@@ -35,13 +36,13 @@ when 's', 'server'
require 'rails/commands/server'
Dir.chdir(ROOT_PATH)
Rails::Server.start
-
-when 'application'
- require 'rails/commands/application'
-when 'dbconsole'
+when 'db', 'dbconsole'
require 'rails/commands/dbconsole'
require APP_PATH
Rails::DBConsole.start(Rails::Application)
+
+when 'application'
+ require 'rails/commands/application'
when 'destroy'
require ENV_PATH
require 'rails/commands/destroy'
diff --git a/railties/lib/rails/tasks/annotations.rake b/railties/lib/rails/tasks/annotations.rake
index 79973b3145..10a9311b2d 100644
--- a/railties/lib/rails/tasks/annotations.rake
+++ b/railties/lib/rails/tasks/annotations.rake
@@ -13,7 +13,7 @@ namespace :notes do
end
end
- desc "Enumerate a custom annotation, specify with ANNOTATION=WTFHAX"
+ desc "Enumerate a custom annotation, specify with ANNOTATION=CUSTOM"
task :custom do
SourceAnnotationExtractor.enumerate ENV['ANNOTATION']
end
diff --git a/railties/lib/rails/tasks/framework.rake b/railties/lib/rails/tasks/framework.rake
index 5d7c094d8b..65d3c48f2d 100644
--- a/railties/lib/rails/tasks/framework.rake
+++ b/railties/lib/rails/tasks/framework.rake
@@ -1,80 +1,19 @@
namespace :rails do
namespace :freeze do
- desc "Lock this application to the current gems (by unpacking them into vendor/rails)"
+ desc "The rails:freeze:gems is deprecated, please use bundle install instead"
task :gems do
- deps = %w(actionpack activerecord actionmailer activesupport activeresource)
- require 'rubygems'
- require 'rubygems/gem_runner'
-
- rails = (version = ENV['VERSION']) ?
- Gem.cache.find_name('rails', "= #{version}").first :
- Gem.cache.find_name('rails').sort_by { |g| g.version }.last
-
- version ||= rails.version
-
- unless rails
- puts "No rails gem #{version} is installed. Do 'gem list rails' to see what you have available."
- exit
- end
-
- puts "Freezing to the gems for Rails #{rails.version}"
- rm_rf "vendor/rails"
- mkdir_p "vendor/rails"
-
- begin
- chdir("vendor/rails") do
- rails.dependencies.select { |g| deps.include? g.name }.each do |g|
- Gem::GemRunner.new.run(["unpack", g.name, "--version", g.version_requirements.to_s])
- mv(Dir.glob("#{g.name}*").first, g.name)
- end
-
- Gem::GemRunner.new.run(["unpack", "rails", "--version", "=#{version}"])
- FileUtils.mv(Dir.glob("rails*").first, "railties")
- end
- rescue Exception
- rm_rf "vendor/rails"
- raise
- end
+ puts "The rails:freeze:gems is deprecated, please use bundle install instead"
end
- desc 'Lock to latest Edge Rails, for a specific release use RELEASE=1.2.0'
+ desc 'The freeze:edge command has been deprecated, specify the path setting in your app Gemfile instead and bundle install'
task :edge do
- require 'open-uri'
- version = ENV["RELEASE"] || "edge"
- target = "rails_#{version}.zip"
- commits = "http://github.com/api/v1/yaml/rails/rails/commits/master"
- url = "http://dev.rubyonrails.org/archives/#{target}"
-
- chdir 'vendor' do
- latest_revision = YAML.load(open(commits))["commits"].first["id"]
-
- puts "Downloading Rails from #{url}"
- File.open('rails.zip', 'wb') do |dst|
- open url do |src|
- while chunk = src.read(4096)
- dst << chunk
- end
- end
- end
-
- puts 'Unpacking Rails'
- rm_rf 'rails'
- `unzip rails.zip`
- %w(rails.zip rails/Rakefile rails/cleanlogs.sh rails/pushgems.rb rails/release.rb).each do |goner|
- rm_f goner
- end
-
- touch "rails/REVISION_#{latest_revision}"
- end
-
- puts 'Updating current scripts, javascripts, and configuration settings'
- Rake::Task['rails:update'].invoke
+ puts 'The freeze:edge command has been deprecated, specify the path setting in your app Gemfile instead and bundle install'
end
end
- desc "Unlock this application from freeze of gems or edge and return to a fluid use of system gems"
+ desc 'The unfreeze command has been deprecated, please use bundler commands instead'
task :unfreeze do
- rm_rf "vendor/rails"
+ puts 'The unfreeze command has been deprecated, please use bundler commands instead'
end
desc "Update both configs, scripts and public/javascripts from Rails"
@@ -112,7 +51,7 @@ namespace :rails do
invoke_from_app_generator :create_prototype_files
end
- desc "Add new scripts to the application script/ directory"
+ desc "Adds new scripts to the application script/ directory"
task :scripts do
invoke_from_app_generator :create_script_files
end