I'm running a fresh install of CakePHP 4 and I'm trying to create an initial migration for the database. The migration itself is build correctly but the command fails to mark the migrations as done:
~/code$ bin/cake bake migration_snapshot Initial
Creating file /home/vagrant/code/config/Migrations/20200125204245_Initial.php
Wrote `/home/vagrant/code/config/Migrations/20200125204245_Initial.php`
Marking the migration 20200125204245_Initial as migrated...
Exception: Shell class for "Migrations" could not be found. If you are trying to use a plugin shell, that was loaded via $this->addPlugin(), you may need to update bin/cake.php to match https://github.com/cakephp/app/tree/master/bin/cake.php
In [/home/vagrant/code/vendor/cakephp/cakephp/src/Console/ShellDispatcher.php, line 332]
Since the migration is created successfully I'm pretty sure the plugin is installed correctly but somehow Bake can't access it?
The installed versions are:
CakePHP 4.0.2
CakePHP/Bake 2.0.4
CakePHP/Migrations 3.0.0-beta2
Apparently it's a bug and an issue has been created:
https://github.com/cakephp/bake/issues/638
Related
i have cakephp3.3 windows and i need to upgrade to cakephp3.6. Checking the docs i see there is no tool available. Checking the migration guides i am not seeing any issues with my code in cake3.3 with newer versions.
Do i simply create a new instance of cake3.6 and create models,controllers again using bake and then copy over code to see if this works? what is an efficient way
The docs in cakephp are not clear on this process. do i upgrade to 3.4 then 3.5,3.6?
https://book.cakephp.org/3.0/en/appendices/3-x-migration-guide.html
Use composer.
For Windows, you can download it from here. After installation, locate composer.json file in your CakePHP application directory, and look for "require" part, and update line regarding CakePHP as follows:
"require": {
"php": ">=5.6",
"cakephp/cakephp": "3.6.*",
....
}
Then, in command line, navigate to your CakePHP installation directory and fire composer update. After a while you should have your CakePHP upgraded.
More info about updating to new version can be found in docs:
Keeping up to date with latest CakePHP changes
Another solution was given which was to install a new instance of cakephp and just copy over scr folder and other relevant code in the new instance. This is more work but the conversion from 3.3 to 3.6 isnt very clean with a composer update
I'm trying to upgrade several of our cakephp 2 apps to cakephp 3 using the upgrade tool but I'm a little lost. On this blog, in one of the comments it says that my application will need a copy of cakephp 3 for the upgrade. Do I install it in the root directory of my app or where exactly?
Should the commands be run like this
bin/cake upgrade all /root_directory/
or
bin/cake upgrade all /root_directory/app/
Any help is appreciated.
I am trying to make test environment for my cake project however the migration from php 5.X to 7.1.0 proves to be a nuisance.
I have succesfully installed a new fresh apache2.4 vc14 x64 bit installation.
This apache installation uses a fresh PHP vc14 x64 7.1.0 installation. Both have been checked and are indeed working perfectly.
Now the problem:
I have a cakephp product using a shared created library in the plugins folder, this was working perfectly in CakePHP 2.8.5 using php 5.x. This plugin is loaded in the bootstrap and used the way cakephp intends us to. However the moment i try to run the old project in the fresh installation it is suddenly unable the load the plugin files. Again everything is loaded in the bootstrap and usage has not been changed whilst moving the content to its new location. I have checked a fresh cakephp installation in the new environment and this is also working splenditly.
I am quite baffled at the moment has anyone having experience using cakephp encoutered this particular problem feel free to fire away with some ideas as to what i might have missed.
i will show some code how everything is loaded and used.
CakePlugin::Load('RemFlex');
<?php echo $this->Html->css('RemFlex.flexdetail'); ?>
<?php echo $this->Html->script('RemFlex.flexportal'); ?>
the plugin directory looks like this
Cakephp_program
-App
-Plugin
-RemFlex
-webroot
-js
-Css
-Controller
-Vendor
Fixed this problem by enabling the rewrite_module in the httpd.conf file of the apache installation. This enabled my htacces to actually work.
I'm trying to add migration package to CakePHP 3.3 using the command
composer require cakephp/migration:~1.0
but I'm receiving the following result:
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package cakephp/migration could not be found in any version, there may be a typo in the package name.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
Installation failed, reverting ./composer.json to its original content.
Any suggestions to solve this?
As #ndm said its "migrations", also it should be allready installed by default if you created your app with composer or such. To activate it you just need to load it in the bootstrap.php as specified here Plugin::load('Migrations');
I'm trying to migrate my app from cakephp 2.0 to 2.1. I've been using 2.1 for a couple of weeks on my local development server, and everything works fine. I've just tried uploading to the production server, and I'm getting the error message:
Fatal error: Class 'Cache' not found in app/Config/core.php on line 265
I'm probably missing something obvious, but I can't work out what. If anyone has experienced something similar or can offer any suggestions I'd be very grateful!
(I'm using the CakePHP 2.1.0 stable release)
Are you very sure you uploaded all the "core" files (the lib directory)? It seems the Cache class is missing, which is a core class of CakePHP. The error message is indicating an incomplete CakePHP install on your server.
Verify if the file lib/Cake/Cache/Cache.php exists and is readable by the webserver you are using (e.g. ownership is set to apache.apache or www-data.www-data and chmod is set properly. If using SELinux, also make sure the files have httpd_sys_content_t or public_content_rw_t context set).