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

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

ただいまの
回答率

91.37%

  • Ruby on Rails

    5045questions

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

  • PowerShell

    221questions

    Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

  • コマンドプロンプト

    208questions

    コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

rails db:migrate:reset ができない

受付中

回答 0

投稿 2017/12/05 16:00 ・編集 2017/12/05 21:55

  • 評価
  • クリップ 1
  • VIEW 56

artistan

score 5

rails db:migrate:resetを実行した際、以下の結果が表示されました。

PS D:\Users\Desktop\myblog> rails db:migrate:reset
Permission denied @ unlink_internal - D:/Users/Desktop/myblog/db/development.sqlite3
Couldn't drop database 'db/development.sqlite3'
rails aborted!
Errno::EACCES: Permission denied @ unlink_internal - D:/Users/Desktop/myblog/db/development.sqlite3
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Tasks: TOP => db:drop:_unsafe
(See full trace by running task with --trace)

アクセス拒否とのことなのですが、どのようにすればいいのかさっぱりです。。。
開発環境は

  • windows10
  • ruby 2.4.2
  • rails 5.1.4
  • sqlite3 3.21.0

となっています。
また、db/development.sqlite3の中身は空です。

データベースのリセットは、rails db:drop_safeにて出来ているのですが、訳すと安全ではないとの意味なので、これもまたどのように安全ではないのかもわからない状態です。

どなたか知恵をお貸しいただけると幸いです!

※追記
goufさんアドバイスにより、db/development.sqlite3を消して再度マイグレートしてみるも、状況変わらずです…
ただ、入れなおしてからファイルを開こうとすると、『このファイルはバイナリか、非常に大きいか、またはサポートされてないテキストエンコードを使用しているため、表示できません』と出るようになりました(エディタはVSCodeです)。
また、D/Ruby24-x64/bin/内のsqlite3.exeも入れなおしましたが変わりませんでした。

心配なのは、sqlite3.exeは https://sqlite.org/download.html の sqlite-tools-win32-x86-3210000.zip から持ってきたのですが、恐らく32bit用のファイルのため上手いことならないのかもしれないです。

CHERRYさん(編集済み)
更に追加コメントありがとうございます!sqlite3コマンドで開くのでしたか!
改めて実行した結果を以下に載せます!

PS D:\Users\Desktop\myblog> sqlite3 .\db\development.sqlite3
SQLite version 3.21.0 2017-10-24 18:55:49
Enter ".help" for usage hints.
sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY);
INSERT INTO schema_migrations VALUES('20171205061041');
CREATE TABLE IF NOT EXISTS "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL);
INSERT INTO ar_internal_metadata VALUES('environment','development','2017-12-05 11:28:50.396134','2017-12-05 11:28:50.396134');
CREATE TABLE IF NOT EXISTS "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar, "body" text, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL);
DELETE FROM sqlite_sequence;
COMMIT;


確かに、こうすれば文字化けが起きないですね!勉強になりました!

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • CHERRY

    2017/12/05 20:17 編集

    マイグレーションは、成功するのですよね? マイグレーションの後で、 SQLite3 コマンドを使って、db/development.sqlite3 の中身を出力したら、正常に出力されるでしょうか?

    キャンセル

  • CHERRY

    2017/12/05 20:56

    db/development.sqlite3 のファイルは、バイナリファイルなので、テキストエディタでは、開けません。 (cat コマンドもテキストファイルしか表示できません) 無理やり開いて編集・保存するとファイルが壊れる原因になります。

    キャンセル

  • CHERRY

    2017/12/05 20:59

    コマンドラインで、sqlite3 db/development.sqlite3 と実行すると 「SQLite> 」のプロンプトに変わりますので、そこで、SQLite3 のコマンドを入力します。.dump と入力して、リターンを押すと テーブルの中のデータを全て表示するとおもいます。 詳しいコマンドは、https://sqlite.org/cli.html を参照してください。

    キャンセル

まだ回答がついていません

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

ただいまの回答率

91.37%

関連した質問

  • 解決済

    データベース設計における正規化の方法

    前提・実現したいこと Androidアプリ開発を学んでいる者です。 現在、おすすめの場所を提示してナビゲーションするアプリを開発しようと考えています。 そこで、事前に飲食

  • 解決済

    総当たり戦表のデータベース設計について

    お世話になります。 現在、以下のような総当たり戦表のようなデータを保存するためのDBをMySQLで設計したいと考えています。 1つのチームに持たせたい情報 チー

  • 解決済

    Facebookのような限定投稿を実現する方法

    現在Ruby on Railsを利用して、Facebookのようなアプリケーションを作成しております。 Facebookのようなウォールに投稿し、友達が見ることが出来るという構造

  • 解決済

    [sqlite3]出力結果をきれいに改行して出力したい

    皆様お世話になっております。 OSXのターミナルでsqlite3を使って、テーブルの構造を確認しようとしたらカラムごとに改行されず、一行で出力されてしましました。テーブル構造を確

  • 解決済

    Twitter API Access Token を 保存する MySQL構造についって

    内部IDの記録について Access Token は 内部ID(整数)-ランダムな文字列という構造になっています。 これを保存しておく場合 内部IDは別途カラムを作成して 

  • 解決済

    Mysql テーブル作成

    create table users ( id int not null auto_increment primary key, name varchar(255),

  • 受付中

    SQLiteでの「SELECT文」の実行について

    DB Browser for SQLiteの初心者です。 1 10行程度の簡単なデータベースを作成し、「SELECT文」を実行しています。 2 その結果、「SELECT

  • 受付中

    migrate実行時のエラー

    前提・実現したいこと migrateを正常に実行したい。 。 発生している問題・エラーメッセージ rake db:migrateを実行しようとしたところ、 画像のようなメッセ

同じタグがついた質問を見る

  • Ruby on Rails

    5045questions

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

  • PowerShell

    221questions

    Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

  • コマンドプロンプト

    208questions

    コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。