-
Notifications
You must be signed in to change notification settings - Fork 11k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Class autoloading doesn't loads migration classes #56
Comments
How did you create the migration? Using Artisan? Artisan should dump the autoloads for you when a migration is created. |
Also is this on a package or on your app? |
It's on the app. I'm using a clean Laravel 4 installation. I created the migration with Artisan, yes. I did use the |
Could it perhaps be a permission problem? Should some folders/files be write able in the |
Where did it place the migration? In |
Yep, exactly. |
I just installed Laravel 4 at home on my home dev machine and here I don't get the error I had at work. I'll try to reinstall again tomorrow at work to see if I can get it to work there as well. |
OK. I've never seen this error. |
I tried it again by changing some things on the original repository like tweaking permissions and manually removing the Autoload class in I did:
I'm trying to install a fresh Laravel installation but it seems that Github is having some issues at the moment (when i run No luck either trying to clone it manually: I'll try again later. |
It was a Github issue apparently: https://status.github.com/messages. I can clone the repo now. I set up a new Laravel 4 installation, followed the steps I've taken previously and again ran into the same problem. Here are the exact steps I've taken:
$env = $app->detectEnvironment(array(
'local' => array('*.loc'),
));
return array(
'connections' => array(
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'laraveltest',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
);
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function($table)
{
$table->increments('id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('users');
}
}
That sums up everything. Pretty much stuck now :-/ |
It's definitely related to my machine because I can get it to work no problems at home, I just have no clue why it doesn't writes the class in the composer Autoload file when it installs the migration. I've setted permissions to |
Having the same problem. |
I've made a temp workaround by manually adding the classname to the composer autoload file. Add the classname in your migration file to this file:
Then run |
Same problem here as well. Fresh install. On a Mac running PHP 5.4.x. |
Running composer dump-autoload fixes the issue... I noticed /vendor/composer/autoload_classmap.php was out of date. So, apparently this command is still needed for some setups. Might be a permissions issue. |
Same problem, fixed with
OK, but the I am not familiar with Composer, but it seems awkward to manually handle the class loading system, and to rely on a modified |
How do you guys have Composer installed on your systems? Using a local In other words, what exact command do you type on the terminal to run Composer? |
I've tried it both ways, using a composer.phar file in my bin, and in the local project.
|
I have composer.phar in my bin and access it via an alias as "composer" - I'm running latest version of Composer. |
I have I run composer with: |
I've still never come across this particular error, but will put a note in the documentation to try a composer update if your migration can't be found. |
I have the same issue with migrations and local environments. I am on Windows 7 with Composer installed globally. I was trying to use the migrations from a workbench where I am building a simple blog. I had to manually add the paths to the workbench to get the migrations to run. Adding this here for anyone else that has this issue. This is the path Artisan created the migrations at for me with the workbench. I am using Sentry for Users and Admin functions and the migrations for that ran fine with the mapping being added to autoload_classmap.php.
|
Same error on ubuntu 12.10, @driesvints thanks for the workarround! I haven't this error with windows 8. |
Have the same error on Mac with php5.4.x. |
I had the same problem on Ubuntu 12.10. I previously had composer.phar in the parent directory of my Laravel 4 project folder. I watched Composer's autoload_classmap.php as I created a migration. The map was not updated eventhough the migration php code was generated. No error messages. I Moved local composer.phar into the base directory of Laravel 4 project. Created another migration. Same message in the shell. However the map is updated. Migration and rollback worked properly. |
I'm having the same issue on a fresh install. Just installed composer.phar and laravel 4 yesterday as per http://four.laravel.com/ , set up secret key. Following tutorial by Andrew Perkins at http://www.youtube.com/watch?v=lEZ8cnVGVZE&list=PL09BB956FCFB5C5FD&index=1 (tutorial is based on Laravel 3, I'm making appropriate adjustments). Created 2nd migration in this tutorial (add_authors).
Not knowing enough about Laravel at this point, I don't know how to resolve this, even as a short-term workaround, other than perhaps require_once() in the the resolve() routine that tries to instantiate the class, if !class_exists(). Any suggestions would be appreciated. |
on the advice of a coworker, I ran 'composer.phar update' which resolved my issue. I guess this issue has been fixed in the framework and updating it worked well. |
@fbastage In my experience, if you don't run artisan dump-autoload, you will be able to migrate the database but not roll-back. Dumping the autoload file (also done on composer update) fixes rolling back. |
PHP: v5.4.4 I was using Way/Generators and successfully run the migration, but when running
so what I did is to run the
|
composer dump-autoload |
I also was able to migrate a fresh database properly, but could not rollback or refresh. I'm using psr-0 style namespacing and folder organization. I had completely cutout my classmap attributes in composer.json and moved everything except the database folder. Putting it back for only the database items and running composer dump-autoload worked. So what I ended up with (which still may not be best practice): "autoload": {
"psr-0": {
"MyApp": "app/src"
},
"classmap": [
"app/database/migrations",
"app/database/seeds"
]
}, Seems really obvious after looking at it now...I suppose I could have namespaced my database migrations, but seems pretty unnecessary. |
Yeah dump-autoload is required before rolling back I believe. On May 12, 2013, at 8:56 PM, phishman9 notifications@github.com wrote:
|
composer dump-autoload fixed my problem! |
Hi , |
i have the same problem |
I am having a similar issue right now ... I deleted one migration class and now I can't run Any ideas? Comment here: #2105 |
Same issue with same solution: |
Im getting the same error, but composer dump-autoload does not solve the issue. Running all commands with and without sudo, I can't seem to get the migration to work. |
Hi, Concerning workbench's dumpings, one problem is than it fail silently. It happens several times that my package's Hope it could help. |
Just had this problem myself with Laravel 4.1 on Ubuntu 14.04 LTS.
php artisan dump-autoload did not work for me. |
Autoloading was recently re-introduced to prevent us from having to run
composer dump-autoload
every time. See this commit.But it seems this was only done for controllers and models. When I try to run a migration it still gives a Fatal error saying it didn't find the migration class:
Running
composer dump-autoload
fixes the problem.I've tried adding the migrations folder to the array of folders here in
app/start/global
:Sadly that doesn't seems to be the solution.
Any suggestions...?
The text was updated successfully, but these errors were encountered: