I don’t use mysql, so fixing mysql problems is kind of hard for me :-).
I’d like to get native mysql support into the installer. I’d really
like to get it in today. So I’d like some help. It’s not all that
complex–here’s the important part of the postgres driver:
class Postgresql < RailsInstaller::Database
def self.yml(installer)
%Q{
login: &login
adapter: postgresql
host: #{db_host installer}
username: #{db_user installer}
password: #{installer.config['db_password']}
database: #{db_name installer}
development:
<<: *login
production:
<<: *login
test:
database: #{db_name installer}-test
<<: *login
}
end
# Create a PostgreSQL database.
def self.create_database(installer)
installer.message "Creating PostgreSQL database"
system("createdb -U #{db_user installer} #{db_name installer}")
system("createdb -U #{db_user installer} #{db_name
installer}-test")
end
end
Basically, I need a ‘yml’ method that builds a database.yml, and a
create_database method that can create a MySQL db.
If someone can implement this now and let me know, then I can
include it in Typo 4.0.2. The source lives in
http://rails-app-installer.googlecode.com/svn/trunk; you should be
able to check it out via svn.
Scott
On 8/10/06, Scott L. [email protected] wrote:
I’d like to get native mysql support into the installer. I’d really
like to get it in today. So I’d like some help. It’s not all that
complex–here’s the important part of the postgres driver:
[snip]
How’s this:
class Mysql < RailsInstaller::Database
def self.db_host(installer)
installer.config[‘db_host’] || ‘localhost’
end
def self.db_user(installer)
installer.config[‘db_user’] || installer.app_name
end
def self.db_name(installer)
installer.config[‘db_name’] || installer.app_name
end
def self.yml(installer)
%Q{
login: &login
adapter: mysql
host: #{db_host installer}
username: #{db_user installer}
password: #{installer.config[‘db_password’]}
database: #{db_name installer}
development:
<<: *login
production:
<<: *login
test:
database: #{db_name installer}-test
<<: *login
}
end
Create a MySQL database.
def self.create_database(installer)
installer.message “Creating MySQL database”
system(“mysql -u #{db_user installer}
-p#{installer.config[‘db_password’]} -e ‘create database #{db_name
installer}’”)
system(“mysql -u #{db_user installer}
-p#{installer.config[‘db_password’]} -e ‘create database #{db_name
installer}-test’”)
end
end
Phil
On 8/10/06, Phillip T. [email protected] wrote:
installer.config['db_host'] || 'localhost'
def self.yml(installer)
def self.create_database(installer)
installer.message “Creating MySQL database”
system(“mysql -u #{db_user installer}
-p#{installer.config[‘db_password’]} -e ‘create database #{db_name
installer}’”)
system(“mysql -u #{db_user installer}
-p#{installer.config[‘db_password’]} -e ‘create database #{db_name
installer}-test’”)
end
end
Thanks. I’ll give this a spin in rails-app-installer 0.1.2 / Typo
4.0.2.
Scott