質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

3回答

1398閲覧

VScode内にて、Rubyを用いて、指定したデータベースに任意のテーブルを作成したい。[タイトルを変更しました]

hirotech3

総合スコア2

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/05/13 08:59

編集2021/05/16 12:12

前提・実現したいこと

初質問、初心者でございます。
分かりづらい点などあると思いますが、よろしくお願いします。


前回の質問内容

mac版VScodeでruby on rails を使用してwebアプリを作成しようとしています。
その際データベースを使用したいので、VScode内で作成したデータベースを表示したいです。


今回の質問内容(追記)

ターミナルにて

sql

1$rails g model Test3 test:text

と入力しモデル、テーブルを作成しましたが、これがどのデータベース内に表示されているのかが分かりません。
これを自分が指定したデータベース内に作成したいです。

発生している問題・エラーメッセージ【前回の内容】


【前回の内容】

VScode内でMySQLをダウンロードすると左側に出てきた「database explorer」をクリックし、
Connect to Database Server
画面にて各入力項目を入力すると(添付写真参照)

Connection error! Access denied for user 'hiro'@'localhost' (using password: YES)

とのエラーメッセージが出て、接続ができません。

①これらの項目に何を入力すればよいのか
②そもそもこれを行う以前に準備するべきことがあるのか
③現在作成しているターミナル上で
$ rails g model Test3 test:text
を実行したが、このデータベースはどこで確認できるのか

これらをお聞きしたいです。

イメージ説明

該当のソースコード

sql

1 2 ーーーーーーー追記ーーーーーーー 3FindRoom_app % mysql --user=root --password 4Enter password: 5Welcome to the MySQL monitor. Commands end with ; or \g. 6Your MySQL connection id is 38 7Server version: 5.7.32 Homebrew 8 9Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. 10 11Oracle is a registered trademark of Oracle Corporation and/or its 12affiliates. Other names may be trademarks of their respective 13owners. 14 15Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 16ーーーーーーー追記終わりーーーーーーー 17 18mysql> SHOW databases; 19+--------------------+ 20| Database | 21+--------------------+ 22| information_schema | 23| list_app | 24| mysql | 25| performance_schema | 26| sys | 27+--------------------+ 285 rows in set (0.00 sec) 29
ターミナル $ rails g model Test3 test:text Running via Spring preloader in process 40595 invoke active_record create db/migrate/20210513083845_create_test3s.rb create app/models/test3.rb invoke test_unit create test/models/test3_test.rb create test/fixtures/test3s.yml

試したこと

前回の内容

MySQLをmacのターミナルからインストールしたときのパスワード、PCのパスワード、パスワードなしを入力しました。

様々なサイトを調べましたが、どのサイトも接続時に入力する内容(ユーザー名、host名など)が具体的に記載されておらず、接続できませんでした。


今回の内容(追記)

現在存在する
information_schema
list_app
mysql
performance_schema
sys
の5つのデータベース内を確認しましたが、Test3のテーブルは存在しませんでした。

補足情報(FW/ツールのバージョンなど)

gemファイル

ruby '2.6.3'
'rails', '> 6.1.3', '>= 6.1.3.2'
'sqlite3', '
> 1.4'
'puma', '> 5.0'
'sass-rails', '>= 6'
'webpacker', '
> 5.0'
'turbolinks', '> 5'
'jbuilder', '
> 2.7'
'bootsnap', '>= 1.4.4', require: false
'byebug', platforms: [:mri, :mingw, :x64_mingw]
'web-console', '>= 4.1.0'
'rack-mini-profiler', '> 2.0'
'listen', '
> 3.3'
'spring'
'capybara', '>= 3.26'
'selenium-webdriver'
'webdrivers'
'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
"racc" , "1.5.2"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/05/13 10:00

見て分かる通りcode機能内では他のマークダウンの機能は無効化されます。 投稿前にプレビュー確認してもらえたらと。
m.ts10806

2021/05/13 10:01

>VScode内で作成したデータベース これってあくまでVSCodeから既存のデータベースに繋いで操作してるだけで(そういうプラグイン)、内にDBサーバーがあるわけではないと思います。
hirotech3

2021/05/13 23:50

ご回答ありがとうございます。 画像を見えるように変更いたしました。 >内にDBサーバーがあるわけではないと思います。 そうなんですね。 それでは既存のデータベースに繋ぐ方法をお聞きしたいです。
AbeTakashi

2021/05/14 00:40 編集

その既存のデータベースはどこにあるのでしょうか? 画面をアップされてますが、その接続情報があればそれを入力するだけですよ。データベースを設置する方法が分からないという意味であれば、質問文のタイトルや内容を全面的に修正してください。VSCode以前の問題ですので。というか、もう少しデータベースに関しての基礎知識を学習した方が良さそうな気がします。 追記 すいません、よく見たらSHOW databases;してますね。データベースは存在してるみたいですが、このコマンドを叩く前にMySQLにログインしたと思いますが、どうやってログインしましたか? データベース名、アカウント、ホスト名、パスワードが必要なはずですが…
hirotech3

2021/05/16 11:29

ご回答ありがとうございます。 ログインするために入力した箇所をSQLのコード内に記述しました。 パスワードはmySQLをインストールした際に設定したものを思い出しました。 Usernameはrootで設定されていることも確認しました。←あってますでしょうか? ホスト名がわからなかったのですが最初から入力されているものを入力、Databases名はSHOW databasesで表示されているものを入力することで接続に成功いたしました! ここで私の問題はターミナルで作成したtestテーブルがどのデータベース内に作られているかがわからない。となると思います。ですのでしばらく試行錯誤した後、質問文のタイトルを変更させていただきます。
guest

回答3

0

ベストアンサー

「$ rails g model Test3 test:text を実行したが」
とありますが、これではまだdatabaseは作られていません。
databaseに作るtableの定義を作っただけです。

rails db:create
すると test用 と development用 の databaseがつくられます。
そのdatabaseはどれか、ですが

Railsのdatabaseは実行環境ごとにことなり、通常3つが予約されています。
上のコマンドを実行した dir に config/database.yml というfileができています。
そこの test: 、 development: 、 production: の下に
database: アプリ名_test
のような記述があります。それらが test、development、 production環境でのdatabaseです

rails db:create すると test と development のdatabaseが作られます。
ですが、今の状態でやると多分失敗します。
database.yml に DBサーバーと接続するための情報を設定する必要があります。
username と password は必須。 状況により host、socket も必要になります。
それが成功すると databaseが2つ test用とdevelopment用が出来ています。
rails db:migrate するとそれらのdatabaseにtable test3s が出来ます。

投稿2021/05/17 23:20

winterboum

総合スコア23329

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hirotech3

2021/05/18 11:45

database.yml の内のdatabase名に database: アプリ名_test などを入力し rails db:migrateで app名_development内にテーブルができているのを確認しました!ありがとうございます!!
winterboum

2021/05/18 23:26

できちゃったんだ。自己解決力ありますね。 database.ymlの書き方で質問が来るかとおもってました。
guest

0

VSCodeのMySQL拡張機能で、データベース名に「test」と指定されて接続しようとしていますが、
show databasesの結果に「test」がありません。

まず必要なデータベースを作りましょう。
それから「hiro」というアカウントはMySQLに作ったのですか?

投稿2021/05/14 00:59

technocore

総合スコア7209

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ご自身で調べて環境構築されたのですね、なかなか大変だと思うのですごいです(´ω`)
しかし、私も初心者レベルなので、今一度正しいかご自身で確認いただければ幸いです。
最初に書いた回答が結構異なっていたので、削除依頼を出したのですが、通らなかったので、分かる限りで編集します。

今、hirotech3さんが作業しているのは、おそらく開発環境というサイトなどを「作る」段階のところです。
gemファイルに'sqlite3', '~> 1.4'というのがあると思います。
これが今、hirotech3さんの開発環境で使われているDBになります。
mysqlを使われているのであれば、本番環境ではsqliteではなくてMySQLを使うよ!というようにしてあげましょう。

開発環境でテーブルを確認する時は、マイグレーションファイルやスキーマというものを見ます。
$ rails g model Test3 test:textされた際に、

Running via Spring preloader in process 40595 invoke active_record create db/migrate/20210513083845_create_test3s.rb create app/models/test3.rb invoke test_unit create test/models/test3_test.rb create test/fixtures/test3s.yml

と出てきていますよね。
invokeは翻訳をかけると呼び出し、createは作成と出てきます。
これを確認してみましょう。
active_recordを呼び出して、
db/migrate/20210513083845_create_test3s.rbというファイルをcreateしているはずです。
db→migrate→20210513083845_create_test3s.rbで、マイグレーションファイルを作ったことが確認出来るかなと思います。
schemaというファイルにテーブルの一覧も乗るようになっています。
ご確認ください。

私も調べながら書きましたが、語句など少しニュアンスが異なるかも知れませんので、今一度ご自身でもお調べください。
もう少し詳しく書けるために、私も環境構築し直してます。
なのでこの回答はあんまり信用しないで下さい・・・m(_ _)m

投稿2021/05/16 13:38

編集2021/05/18 05:31
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問