0

現在、開発環境としてセットアップされているサーバーにCapistranoをデプロイしています。

ただし、実行cap deployするたびにデータベースがまったく保持されないため、すべての展開で新しいデータベースが作成され、完全に空になります。cap deploy:migrationsDBをセットアップするために実行する必要がありますが、ここでの問題は、デプロイメントごとに個別のDBがあることです。

database.ymlDBなどのパスを使用するように変更できると思います../../db/development.sqlite3が、これは、その変更をローカルにもコピーする必要があることを意味し、自分のラップトップ上のプロジェクトのディレクトリからDBを移動するのは非常に不便です。

Capistranoに、展開ごとに1つのDBの場所を使用し、それでもローカルで同じ場所にDBを保持するように指示する方法はありますか?残念ながら、この段階ではサーバーを実稼働環境に設定することはできません。できるような何か:

development: 
  adapter: sqlite3
  :on local
      database: db/development.sqlite3
  :on server
      database: /webapps/rails/shared/dev.sqlite3
  pool: 5
  timeout: 5000

(この時点で、私はまだRailsの周りで自分の道を学んでいることにも言及する価値があります)。

あなたの考えのいずれかが最もありがたいです、ありがとう。唯一のオプションがenvを本番環境に設定することである場合、それはそれを行う必要がありますが、サーバーを開発サーバーとして維持できる方法があれば、それは素晴らしいことです。

ジャック。

4

2 に答える 2

3

データベースの前に実行されるcapistranoにステップを追加して、共有ディレクトリを指すデータベースファイルのシンボリックリンクを作成します。これがlogsあなたのために設定された方法です。これに沿った何か:

namespace :custom do
  task :symlink, :roles => :app do
    run "ln -nfs #{shared_path}/development.sqlite3 #{release_path}/db/development.sqlite3"
  end
end

after "deploy:create_symlink", "customs:symlink"
于 2012-06-13T01:22:49.880 に答える
0

複数のアプリケーション環境を求めていると思います。1つはサーバーでのステージング用、もう1つはローカルでの開発用、そして最終的には本番環境用です。うまく実行するには、ここを試してください

于 2012-06-13T00:15:14.827 に答える