redmine使ってみる
[3058]% svn checkout http://redmine.rubyforge.org/svn/ >| /dev/null [/home/utadaq/work] [3063]% mv svn redmine [/home/utadaq/work] [ERROR:1]% mysql -u root -p [/home/utadaq/work] Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.0.37-log Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create database redmine; Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'redmine_p'; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye [3064]% cd redmine [/home/utadaq/work] branches tags trunk [3065]% cd tags [/home/utadaq/work/redmine] 0.2.0 0.3.0 0.4.0 0.4.1 0.4.2 0.5.0 0.5.1 [3066]% cd 0.5.1 [/home/utadaq/work/redmine/tags] Rakefile app components config db doc extra files lang lib log public script test tmp vendor [3067]% cp config/database.yml.example config/database.yml [/home/utadaq/work/redmine/tags/0.5.1] [3068]% [/home/utadaq/work/redmine/tags/0.5.1]
databasel.ymlを編集
# MySQL (default setup). Versions 4.1 and 5.0 are recommended. # # Get the fast C bindings: # gem install mysql # (on OS X: gem install mysql -- --include=/usr/local/lib) # And be sure to use new-style password hashing: # http://dev.mysql.com/doc/refman/5.0/en/old-client.html production: adapter: mysql database: redmine host: localhost username: redmine password: redmine_p socket: /var/run/mysqld/mysqld.sock # socket はutadaqマシン独自環境対応。
db:migrate
[3085]% rake db:migrate RAILS_ENV="production" [/home/utadaq/work/redmine/tags/0.5.1] (in /home/utadaq/work/redmine/tags/0.5.1) == Setup: migrating =========================================================== -- create_table("attachments", {:force=>true}) -> 0.0435s -- create_table("auth_sources", {:force=>true}) -> 0.0342s -- create_table("custom_fields", {:force=>true}) -> 0.0340s -- create_table("custom_fields_projects", {:id=>false, :force=>true}) -> 0.0255s -- create_table("custom_fields_trackers", {:id=>false, :force=>true}) -> 0.0338s -- create_table("custom_values", {:force=>true}) -> 0.0337s -- create_table("documents", {:force=>true}) -> 0.0337s -- add_index("documents", ["project_id"], {:name=>"documents_project_id"}) -> 0.1134s -- create_table("enumerations", {:force=>true}) -> 0.0215s -- create_table("issue_categories", {:force=>true}) -> 0.0340s -- add_index("issue_categories", ["project_id"], {:name=>"issue_categories_project_id"}) -> 0.0599s -- create_table("issue_histories", {:force=>true}) -> 0.0336s -- add_index("issue_histories", ["issue_id"], {:name=>"issue_histories_issue_id"}) -> 0.0598s -- create_table("issue_statuses", {:force=>true}) -> 0.0337s -- create_table("issues", {:force=>true}) -> 0.0423s -- add_index("issues", ["project_id"], {:name=>"issues_project_id"}) -> 0.1056s -- create_table("members", {:force=>true}) -> 0.0297s -- create_table("news", {:force=>true}) -> 0.0341s -- add_index("news", ["project_id"], {:name=>"news_project_id"}) -> 0.0598s -- create_table("permissions", {:force=>true}) -> 0.0340s -- create_table("permissions_roles", {:id=>false, :force=>true}) -> 0.0425s -- add_index("permissions_roles", ["role_id"], {:name=>"permissions_roles_role_id"}) -> 0.1013s -- create_table("projects", {:force=>true}) -> 0.0678s -- create_table("roles", {:force=>true}) -> 0.0261s -- create_table("tokens", {:force=>true}) -> 0.2402s -- create_table("trackers", {:force=>true}) -> 0.0271s -- create_table("users", {:force=>true}) -> 0.0343s -- create_table("versions", {:force=>true}) -> 0.0341s -- add_index("versions", ["project_id"], {:name=>"versions_project_id"}) -> 0.0596s -- create_table("workflows", {:force=>true}) -> 0.0424s == Setup: migrated (2.5630s) ================================================== == IssueMove: migrating ======================================================= == IssueMove: migrated (0.0150s) ============================================== == IssueAddNote: migrating ==================================================== == IssueAddNote: migrated (0.0151s) =========================================== == ExportPdf: migrating ======================================================= == ExportPdf: migrated (0.0318s) ============================================== == IssueStartDate: migrating ================================================== -- add_column(:issues, :start_date, :date) -> 0.0542s -- add_column(:issues, :done_ratio, :integer, {:default=>0, :null=>false}) -> 0.0594s == IssueStartDate: migrated (0.1138s) ========================================= == CalendarAndActivity: migrating ============================================= == CalendarAndActivity: migrated (0.1220s) ==================================== == CreateJournals: migrating ================================================== -- create_table(:journals, {:force=>true}) -> 0.0393s -- create_table(:journal_details, {:force=>true}) -> 0.0342s -- add_index("journals", ["journalized_id", "journalized_type"], {:name=>"journals_journalized_id"}) -> 0.0762s -- add_index("journal_details", ["journal_id"], {:name=>"journal_details_journal_id"}) -> 0.0675s -- drop_table(:issue_histories) -> 0.0240s == CreateJournals: migrated (0.2925s) ========================================= == CreateUserPreferences: migrating =========================================== -- create_table(:user_preferences) -> 0.0328s == CreateUserPreferences: migrated (0.0329s) ================================== == AddHideMailPref: migrating ================================================= -- add_column(:user_preferences, :hide_mail, :boolean, {:default=>false}) -> 0.0822s == AddHideMailPref: migrated (0.0823s) ======================================== == CreateComments: migrating ================================================== -- create_table(:comments) -> 0.0992s == CreateComments: migrated (0.0993s) ========================================= == AddNewsCommentsCount: migrating ============================================ -- add_column(:news, :comments_count, :integer, {:default=>0, :null=>false}) -> 0.0754s == AddNewsCommentsCount: migrated (0.0755s) =================================== == AddCommentsPermissions: migrating ========================================== == AddCommentsPermissions: migrated (0.0798s) ================================= == CreateQueries: migrating =================================================== -- create_table(:queries, {:force=>true}) -> 0.0335s == CreateQueries: migrated (0.0336s) ========================================== == AddQueriesPermissions: migrating =========================================== == AddQueriesPermissions: migrated (0.0395s) ================================== == CreateRepositories: migrating ============================================== -- create_table(:repositories, {:force=>true}) -> 0.0318s == CreateRepositories: migrated (0.0319s) ===================================== == AddRepositoriesPermissions: migrating ====================================== == AddRepositoriesPermissions: migrated (0.2273s) ============================= == CreateSettings: migrating ================================================== -- create_table(:settings, {:force=>true}) -> 0.0273s == CreateSettings: migrated (0.0275s) ========================================= == SetDocAndFilesNotifications: migrating ===================================== == SetDocAndFilesNotifications: migrated (0.1633s) ============================ == AddIssueStatusPosition: migrating ========================================== -- add_column(:issue_statuses, :position, :integer, {:default=>1, :null=>false}) -> 0.0669s == AddIssueStatusPosition: migrated (0.0742s) ================================= == AddRolePosition: migrating ================================================= -- add_column(:roles, :position, :integer, {:default=>1, :null=>false}) -> 0.0669s == AddRolePosition: migrated (0.0768s) ======================================== == AddTrackerPosition: migrating ============================================== -- add_column(:trackers, :position, :integer, {:default=>1, :null=>false}) -> 0.0479s == AddTrackerPosition: migrated (0.1408s) ===================================== == SerializePossiblesValues: migrating ======================================== == SerializePossiblesValues: migrated (0.0075s) =============================== == AddTrackerIsInRoadmap: migrating =========================================== -- add_column(:trackers, :is_in_roadmap, :boolean, {:default=>true, :null=>false}) -> 0.0596s == AddTrackerIsInRoadmap: migrated (0.0598s) ================================== == AddRoadmapPermission: migrating ============================================ == AddRoadmapPermission: migrated (0.0393s) =================================== == AddSearchPermission: migrating ============================================= == AddSearchPermission: migrated (0.0398s) ==================================== == AddRepositoryLoginAndPassword: migrating =================================== -- add_column(:repositories, :login, :string, {:default=>"", :limit=>60}) -> 0.0590s -- add_column(:repositories, :password, :string, {:default=>"", :limit=>60}) -> 0.2103s == AddRepositoryLoginAndPassword: migrated (0.2695s) ========================== == CreateWikis: migrating ===================================================== -- create_table(:wikis) -> 0.0569s -- add_index(:wikis, :project_id, {:name=>:wikis_project_id}) -> 0.2668s == CreateWikis: migrated (0.3239s) ============================================ == CreateWikiPages: migrating ================================================= -- create_table(:wiki_pages) -> 0.0265s -- add_index(:wiki_pages, [:wiki_id, :title], {:name=>:wiki_pages_wiki_id_title}) -> 0.0848s == CreateWikiPages: migrated (0.1115s) ======================================== == CreateWikiContents: migrating ============================================== -- create_table(:wiki_contents) -> 0.0305s -- add_index(:wiki_contents, :page_id, {:name=>:wiki_contents_page_id}) -> 0.0753s -- create_table(:wiki_content_versions) -> 0.0346s -- add_index(:wiki_content_versions, :wiki_content_id, {:name=>:wiki_content_versions_wcid}) -> 0.0843s == CreateWikiContents: migrated (0.2252s) ===================================== == AddProjectsFeedsPermissions: migrating ===================================== == AddProjectsFeedsPermissions: migrated (0.0392s) ============================ == AddRepositoryRootUrl: migrating ============================================ -- add_column(:repositories, :root_url, :string, {:default=>"", :limit=>255}) -> 0.0635s == AddRepositoryRootUrl: migrated (0.0636s) =================================== == CreateTimeEntries: migrating =============================================== -- create_table(:time_entries) -> 0.0325s -- add_index(:time_entries, [:project_id], {:name=>:time_entries_project_id}) -> 0.0764s -- add_index(:time_entries, [:issue_id], {:name=>:time_entries_issue_id}) -> 0.0840s == CreateTimeEntries: migrated (0.1934s) ====================================== == AddTimelogPermissions: migrating =========================================== == AddTimelogPermissions: migrated (0.0395s) ================================== == CreateChangesets: migrating ================================================ -- create_table(:changesets) -> 0.0920s -- add_index(:changesets, [:repository_id, :revision], {:name=>:changesets_repos_rev, :unique=>true}) -> 0.0684s == CreateChangesets: migrated (0.1606s) ======================================= == CreateChanges: migrating =================================================== -- create_table(:changes) -> 0.0319s -- add_index(:changes, [:changeset_id], {:name=>:changesets_changeset_id}) -> 0.0589s == CreateChanges: migrated (0.0911s) ========================================== == AddChangesetCommitDate: migrating ========================================== -- add_column(:changesets, :commit_date, :date) -> 0.0739s == AddChangesetCommitDate: migrated (0.0829s) ================================= == AddProjectIdentifier: migrating ============================================ -- add_column(:projects, :identifier, :string, {:limit=>20}) -> 0.0641s == AddProjectIdentifier: migrated (0.0643s) =================================== == AddCustomFieldIsFilter: migrating ========================================== -- add_column(:custom_fields, :is_filter, :boolean, {:default=>false, :null=>false}) -> 0.0905s == AddCustomFieldIsFilter: migrated (0.0906s) ================================= == CreateWatchers: migrating ================================================== -- create_table(:watchers) -> 0.0302s == CreateWatchers: migrated (0.0304s) ========================================= == CreateChangesetsIssues: migrating ========================================== -- create_table(:changesets_issues, {:id=>false}) -> 0.0327s -- add_index(:changesets_issues, [:changeset_id, :issue_id], {:name=>:changesets_issues_ids, :unique=>true}) -> 0.0845s == CreateChangesetsIssues: migrated (0.1175s) ================================= == RenameCommentToComments: migrating ========================================= == RenameCommentToComments: migrated (0.0356s) ================================ == CreateIssueRelations: migrating ============================================ -- create_table(:issue_relations) -> 0.0240s == CreateIssueRelations: migrated (0.0242s) =================================== == AddRelationsPermissions: migrating ========================================= == AddRelationsPermissions: migrated (0.0813s) ================================ == SetLanguageLengthToFive: migrating ========================================= -- change_column(:users, :language, :string, {:default=>"", :limit=>5}) -> 0.1003s == SetLanguageLengthToFive: migrated (0.1005s) ================================ == CreateBoards: migrating ==================================================== -- create_table(:boards) -> 0.0330s -- add_index(:boards, [:project_id], {:name=>:boards_project_id}) -> 0.1014s == CreateBoards: migrated (0.1346s) =========================================== == CreateMessages: migrating ================================================== -- create_table(:messages) -> 0.0911s -- add_index(:messages, [:board_id], {:name=>:messages_board_id}) -> 0.0850s -- add_index(:messages, [:parent_id], {:name=>:messages_parent_id}) -> 0.0839s == CreateMessages: migrated (0.2604s) ========================================= == AddBoardsPermissions: migrating ============================================ == AddBoardsPermissions: migrated (0.1214s) =================================== == AllowNullVersionEffectiveDate: migrating =================================== -- change_column(:versions, :effective_date, :date, {:default=>nil}) -> 0.0835s == AllowNullVersionEffectiveDate: migrated (0.0836s) ========================== == AddWikiDestroyPagePermission: migrating ==================================== == AddWikiDestroyPagePermission: migrated (0.0384s) =========================== == AddWikiAttachmentsPermissions: migrating =================================== == AddWikiAttachmentsPermissions: migrated (0.0806s) ========================== == AddProjectStatus: migrating ================================================ -- add_column(:projects, :status, :integer, {:default=>1, :null=>false}) -> 0.0755s == AddProjectStatus: migrated (0.0757s) ======================================= == AddChangesRevision: migrating ============================================== -- add_column(:changes, :revision, :string) -> 0.0581s == AddChangesRevision: migrated (0.0582s) ===================================== == AddChangesBranch: migrating ================================================ -- add_column(:changes, :branch, :string) -> 0.0827s == AddChangesBranch: migrated (0.0829s) ======================================= == AddChangesetsScmid: migrating ============================================== -- add_column(:changesets, :scmid, :string) -> 0.0580s == AddChangesetsScmid: migrated (0.0581s) ===================================== == AddRepositoriesType: migrating ============================================= -- add_column(:repositories, :type, :string) -> 0.1350s == AddRepositoriesType: migrated (0.1430s) ==================================== == AddRepositoriesChangesPermission: migrating ================================ == AddRepositoriesChangesPermission: migrated (0.0063s) ======================= == AddVersionsWikiPageTitle: migrating ======================================== -- add_column(:versions, :wiki_page_title, :string) -> 0.0745s == AddVersionsWikiPageTitle: migrated (0.0746s) =============================== == AddIssueCategoriesAssignedToId: migrating ================================== -- add_column(:issue_categories, :assigned_to_id, :integer) -> 0.0579s == AddIssueCategoriesAssignedToId: migrated (0.0580s) ========================= [3086]% [/home/utadaq/work/redmine/tags/0.5.1] ~/work/redmine/tags/0.5.1 | 0* rake 1 cat
なげぇー。
railsで開発してるプロジェクトって、migrateバンバン使うからこんな感じになるんだなと
実感しつつ、セットアップ完了。
あとは、参考URLにあるとおりデータをセットしてWEbrickを起動。
[ERROR:1]% rake load_default_data RAILS_ENV="production" [/home/utadaq/work/redmine/tags/0.5.1] (in /home/utadaq/work/redmine/tags/0.5.1) Select language: bg, de, en, es, fr, it, ja, nl, pt, pt-br, sv, zh [en] ja ==================================== Loading default configuration data for language: ja [3089]% script/server -e production -p 3001 [/home/utadaq/work/redmine/tags/0.5.1] => Booting WEBrick... => Rails application started on http://0.0.0.0:3001 => Ctrl-C to shutdown server; call with --help for options [2007-08-26 19:58:44] INFO WEBrick 1.3.1 [2007-08-26 19:58:44] INFO ruby 1.8.5 (2006-08-25) [x86_64-linux] [2007-08-26 19:58:44] INFO WEBrick::HTTPServer#start: pid=3527 port=3001 ~/work/redmine/tags/0.5.1 | 0* server 1 cat
-
- 参考URL
[Ruby on Railsで作られたプロジェクト管理ツールredMineを使ってみよう!:http://gihyo.jp/dev/serial/01/redmine/0002?page=2]