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

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

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

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

データベース

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

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

Q&A

解決済

3回答

1759閲覧

既存の社内システムの改修が必要になり、 既存のソースを確認したところ、マイグレーションファイルが存在しません。そのため、fuelphpでマイグレーション以外でのテーブル作成方法について調べています

snyt45

総合スコア7

MySQL

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

データベース

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

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

0グッド

1クリップ

投稿2019/10/16 02:32

前提・実現したいこと

既存の社内システムの改修が必要になり、
既存のソースを確認した感じですと、マイグレーションファイルが存在しませんでした。
そのため、fuelphpでマイグレーション以外でのテーブル作成方法について調べています。

fuel\app\migrations にマイグレーションファイルが作成されていない場合、手動でマイグレーションファイルを作成するか、手動でMySQLからSQLで登録していくかしか方法は無いのでしょうか。

一応、本番環境のテーブル構成はMySQLworkbenchで確認できるので最悪手動で開発環境に同じテーブル構成を作ろうと思っていますが、とても手間がかかりそうなので質問させていただきました。

状況:
・Bitbucketのソースは頂いた。
・fuelphpの環境構築済み。ログイン画面まではいける。
・fuelphp自体初めて触るので、勝手が分からず困っている。
・社内には、作ったエンジニアの方がいなくなっているので聞くことができない状況。

構築済み環境:
・fuelphp 1.7.2
・PHP 5.3.3
・MySQL
・phpmyadmin
・Docker

該当のソースコード

fuel/app/config/development/migrations.php

<?php return array( 'version' => array( 'app' => array( 'default' => 0, ), 'module' => array( ), 'package' => array( 'auth' => array( ), ), ), 'folder' => 'migrations/', 'table' => 'migration', );

fuel/app/config/development/db.php

<?php /** * The development database settings. These get merged with the global settings. */ return array( 'default' => array( 'connection' => array( 'dsn' => 'mysql:host=mysql;dbname=xxx_dev;unix_socket=/tmp/mysql.sock', 'username' => 'root', 'password' => 'root', ), ), );

試したこと

・development環境であることを確認。

$ php oil -v Fuel: 1.7.2 running in "development" mode

・fuel\app\migrations は空であることを確認。

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

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

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

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

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

m.ts10806

2019/10/16 02:38

phpmyadminがありながらphpmyadminを使用する方向ではないということでしょうか。
snyt45

2019/10/16 02:54

わざわざ手動でテーブル作成をするのは大変なので、migrationを使っていると思って調べています。 開発時の環境がソースからしか読み取れないのでなんともなのですが、migrationを使わずに手動でテーブル作成していくことも結構多いのでしょうか。
kawax

2019/10/16 07:14

初心者が手動で設定して作ったんだろう…。元がひどすぎる場合最終的には全部作り直したほうが早いとなる。
guest

回答3

0

わざわざ手動でテーブル作成をするのは大変なので、migrationを使っていると思って調べています。

開発時の環境がソースからしか読み取れないのでなんともなのですが、migrationを使わずに手動でテーブル作成していくことも結構多いのでしょうか。

開始時点は手動でも管理できる範囲と手動ではじめて徐々に大きくなっていき、はじまりが手動だったもんでその慣習に倣っていくうちにどんどん大きくなって、今さらマイグレーションに切り替えることも簡単ではない(調査、移行、評価、教育で莫大にコストがかかる)状況になってそのままきている

なんてことはあります。
大抵はちょっとしたことの積み重ねなのです。

本来は設計書から読み取るべきものがソース読むしかないような環境ではよく起こります。

別コメントで「結局作り直した方が早い」というのもありますが、そこまでのコストをかけられるかどうか天秤にかけることになってしまいます。
「そもそも本当に終わるのか」も込みですね。

マイグレーションも結局は裏でDBアクセスして指定通りの環境を構築してくれているに過ぎないもののはずなので、その「裏の操作」を直接行うことができるなら手段はたくさんあります。
要はCREATE TABLE,INSERTなどができればいいわけですからね。直接MySQLにつないでコマンド打ってもできます。

ここからどうするかは結局コストとの比較になります。
社内システムとのことでPHPのバージョンも相当古いものですし、フレームワークも新しいものではないと思います。

いっそ、最新の環境(せめてPHP7.2以降)で全て作り直すように提案するのもありかもしれません。現行システムから設計に抜けがないようにするのは大変ですが、メンテナンス性や今後の社内開発の将来まで加味したときに、どちらがいいかを議論すると良いですね。

投稿2019/10/16 08:00

m.ts10806

総合スコア80765

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

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

0

皆さんご回答ありがとうございます!!
今回の社内システムはそこまで工数を貰える案件でもないため、
本番環境のMySQLをエクスポートして、開発環境にインポートする形にしようと思います!
そのあと、時間があればマイグレーションファイルなり作れそうなのでそちらでやります。

また、この質問をするまで1案件しか開発経験がなかったのでマイグレーションファイルを作らない案件も多くあるというのが知れて勉強になりました。

投稿2019/10/17 06:01

編集2019/10/17 06:02
snyt45

総合スコア7

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

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

m.ts10806

2019/10/17 06:11

いや、「できる」だけであってフレームワークで推奨されるやり方ではないですよ。提示されたのはあくまで「現状からどうするか」のみです。
guest

0

ベストアンサー

fuel\app\migrations にマイグレーションファイルが作成されていない場合、手動でマイグレーションファイルを作成するか、手動でMySQLからSQLで登録していくかしか方法は無いのでしょうか。

本番環境のテーブル構成はMySQLworkbenchで確認できるので最悪手動で開発環境に同じテーブル構成を作ろうと思っていますが、とても手間がかかりそうなので質問させていただきました。

本番環境のDBバックアップを取得して、開発環境にリストアすれば良いだけだと思います。

投稿2019/10/16 02:51

sazi

総合スコア25138

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

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

snyt45

2019/10/16 03:09

なるほど!調べてやってみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問