I'm attempting to migrate my rails application from postgresql to mySQL so as to view the data in one place within xampp in PHPmyadmin. The reason is the fact that I need to access the data that is located within the MySQL database from my rails app which is in postgresql.
As of now most questions I found aim to create a new application within mySQL with rails but I need to migrate all of the data my current rails application compatible and use MySQL.
Is there a proper process and simple procedure that allows for this migration from postgresql to mySQL?
Note: MySQL is within xampp
this post
got the answer to your question.
It's very easy, just paste your postgres dump in this website and you'll get the same dump converted in mysql, ready for you to be imported.
Then you will just need to properly configure your database.yml and you're set.
Related
Can I use MySQL Workbench to create the tables and add data then import / connect that into my Rails app? My Rails app is already connected to MySQL. I am just wondering if I create tables in MySQL Workbench through the app_development schema if that will sync over to my Rails project or not and if there's a way to check to see if it worked?
You can use
rake db:schema:dump
to generate schema.rb from an existing database.
Having schema.rb, you can generate an empty initial migration and put create_table and other statements from generated schema there. Doing this will allow you to use all the relevant rake tasks just as if you developed your database "the Rails way" — via a series of migrations.
I'm having a small issue. I'm trying to install a plugin (http://plugins.cakephp.org/p/720-users), the user management plugin. For this, I need to create some mysql tables, but I guess you need to create these via a php file and the Console of cakephp. The problem is that I have a very simple server that can only run php and a mysql database. Is there a way to create the sql code out of this php file without the console? The file is question is https://github.com/CakeDC/users/blob/master/Confi
No, you can't. Get a less crappy host. I'm paying only $12 for 3 month (!) for my private virtual server with root access.
Alternatively you could run the migration or schema shell locally, dump the tables and insert them via phpmyadmin on your crappy host.
I'm having a lot of run with Ruby, creating some basic web apps. When looking at the logs of the rails server in terminal, I see mysql queries.
Refinery::User Load (0.2ms) SELECT "refinery_users".* FROM "refinery_users" WHERE "refinery_users"."id" = 1 LIMIT 1
Theses are relating to databases that I've created, but where do these databases exist? In the rails server? Where is the rails server stored in OSX? Can I browse what's inside, specifically, the databases?
Thanks, I know this doesn't have much practical use, but I want to understand the concepts behind what's going on, rather than just having superficial knowledge.
By default, Rails uses SQLite3. The database files are stored in the /db directory in the root of your app. There should be a file called development.sqlite3.
To access that database, open a terminal session, go to the root directory of your app and enter sqlite3 db/development.sqlite3. More info on the sqlite shell here: http://www.sqlite.org/sqlite.html
Rather than messing around in the SQLite shell, I think you'd be better off 1) looking at /db/schema.rb to see the structure of your database and 2) using rails console to look at the data.
If you want to know, for any given Rails app, what database it's using, look at /config/database.yml. That gives you the adapter, name of the database, location, etc.
Also, SQLite is generally just for kicking off development. I wouldn't recommend using it when your schema starts getting more complex. Personally, I never use it. I immediately set up a mySQL database for any new Rails projects.
I just joined a project where they have been using SQLite. I am more comfortable using MySQL with PHPMyAdmin. If I install phpMyAdmin and work with that will it do any damage?
It is a php project. They have alot of code (sloppy code thats so hard to figure out) for accessing a SQLite db. I dont want to effect that but I want to add some new tables to a new db using mysql and phpmyadmin which i am yet to set up because I'm afraid it will break the code written for the SQLite db
.
Are you talking merely about installing PHPMyAdmin to manage a SQLite database? That won't work, since both use completely different API's to be accessible through PHP.
Or do you wish to swap the SQLite database with MySQL and then use PHPMyAdmin to manage the database? That'll work, as long as the project supports both SQLite and MySQL.
Is it a PHP project? Probably not - mysql_-prefixed methods only work with MySQL as far as I know, and SQLite and MySQL don't listen on the same port by default, do they?
You need to work with what is deployed. If the project is using Sqlite, then use that. Databases are not all equal. If you use something different, your code might not even run on the production databases.
first of all, if you don't want affect, create a branch on github then from work this branch ..
you can also dump all table of this sqlite database to a sql file, then import this file to your phpAdmin, will create the table, since this both manager uses sql language ... just remove some ligne of code that are not compatible with mysql on sql file that you dump data from sqlite dabtase .....
here is the code for dump a sqlite database ....
first select the database on terminal on your project director
sqlite3
./open DATABASENAME
.output YOURSQLFILENAME.sql
.dump
.quit
at this stage you already have your database in a sql file
then use php admin to import this file
if it show some error, just try to remove somecode that aren't compatible with mysql on sqlfile.
Recently i came across a tool written in tcl which generates a mysql database without connecting to a server. It uses some c libraries, can this be done in perl? Sorry if this is too basic question. This is completely new to me, couldnt find much information.
EDIT:
By "generates a mysql database" i mean it generates a directory with mysql tables. I can create a soft link to that directory in mysql and query data from that
You can generate an SQL file maually that builds up a database when imported into a mysql database. I would advise against manyually creating binary tables and copying them under mysql's data folder.
On the other hand if you want to use SQL databases locally, without having to run a separate server process try SQLite.