Liquibase pretending there's no liquibase.properties in the folder? - liquibase

I thought liquibase is looking for that file in the liquibases' folder I placed in my linux' /opt folder.
That folder (/opt/liquibase) is in profile.d already so I can call liquibase anywhere.
And yet, when I type "liquibase update", it gives the following output on the terminal:
Starting Liquibase at Sun, 15 Sep 2019 23:00:43 CEST (version 3.8.0 built at 2019-08-15T20:38:06Z)
Liquibase Community 3.8.0 by Datical
Errors:
The option --url is required.
The option --changeLogFile is required.
It makes me wonder why url and changeLogFile are missing, because in /opt/liquibase/liquibase.properties, I got the following lines:
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/luquibase?autoReconnect=true&useSSL=false
username: zend
password: zend
changeLogFile: ~/html/zend/sql/changelog.xml
What do I do wrong here?

This is as-designed behavior. It is expected that people using liquibase will use it on multiple projects, so it looks for the liquibase.properties file in the current directory, which may not be the directory where the liquibase shell script lives.

Related

Symfony 5 - "An exception occurred in driver: could not find driver"

I'm currently face to this problem. I am really new beginer at Symfony.
Problem :
When i create a new db with cli symfony console doctrine:database:create, i am getting these errors :
In AbstractPostgreSQLDriver.php line 102:
An exception occurred in driver: could not find driver
In Exception.php line 18:
could not find driver
In PDOConnection.php line 38:
could not find driver
Iam using php 7.4 with xampp and normaly pdo_sql is installed :
extension=bz2
extension=curl
;extension=ffi
;extension=ftp
extension=fileinfo
extension=gd2
extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=ldap
extension=mbstring
extension=exif ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop
this is my .env file config :
###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
#
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
DATABASE_URL="mysql://root:#127.0.0.1:3306/dbname"
DATABASE_URL="postgresql://db_user:db_password#127.0.0.1:5432/db_name?serverVersion=13&charset=utf8"
###< doctrine/doctrine-bundle ###
And this is my doctrine.yaml file config :
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
#server_version: '13'
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
I have been searching for hours but i cant get any solutions to solve my problem, someone has an idea ?
I'm on windows.
Thanks a lot !
If you want to use Mysql , comment this line DATABASE_URL="postgresql://db_user:db_password#127.0.0.1:5432/db_name?serverVersion=13&charset=utf8"
If not comment the other line
if you are working in Linux, probably some extensions are missing,run those command
sudo apt-get install php-mysql php-pdo
I had the same problem, PHP 7.4.29, xampp, windows.
For the purpose of installing Xdebug I upgraded my PHP version to 7.4.29 (previously 7.4.18), and I guess this errror occured since then. Database connexion worked before. I copied the extensions from the old php.ini to the new one and the error remained.
What resolved the problem : added this line :
extension_dir = "D:\programs\xampp\php\ext"
And activated these extensions :
extension=bz2
extension=curl
extension=fileinfo
extension=gd2
extension=gettext
extension=mbstring
extension=exif
extension=mysqli
extension=pdo_mysql
extension=pdo_sqlite
In my case, I got my .env.local file from a colleague and stupidly saved it without the leading dot, so Symfony was using the values from the .env file, which reads
DATABASE_URL="postgresql://symfony:ChangeMe#127.0.0.1:5432/app?serverVersion=13&charset=utf8" rather than the correct DATABASE_URL="mysql://foo:bar#127.0.0.1:3306/baz?serverVersion=mariadb-x.y.z" from .env.local.
I'm running Homestead/vagrant on windows and my problem was, I wasn't able to execute this command php bin/console doctrine:database:create on windows even though I opened a terminal as administrator
As seen on these 2 pictures I tried Cmder and Git bash and both of them failed, saying an execption occured in driver: could not find driver
I then solved it by SSH into my vagrant box vagrant ssh navigated to the working symfony folder and ran the command from there php bin/console doctrine:database:create and for some reason that worked !
I wish there was an easier way to debug this stuff, but I guess that's how it is working with Windows. Hope this can help someone out there
php.ini
copy path
find the file then open it
delete the ; in extension=mysqli
I also had this problem, just uncomment the DATABASE_URL that you have on your computer either (sqlite, mysql or postresql).
I had the same problem when I typed the following command:
symfony console make:user User
I solved the problem with the command:
php bin/console make:user User.
Wanting to create a user
step 1 => go to Xaamp control panel then click config of Apache
step 2 => click on PHP(php.ini).browse through the file. you can able to see these extensions.
extension=bz2
extension=curl
remove ; from ;extension=pdo_pgsql and save it and close file
step 3 => now come back to your project.click on .env file and comment this line:
DATABASE_URL="postgresql://symfony:ChangeMe#127.0.0.1:5432/app?serverVersion=13&charset=utf8"
this works!
I had the same problem, I am runing a Symofny application with docker.
When you add doctrine-bundle to your app, in Dockerfile will appear this lines what will install drivers for postgres.
You have to remove it and add this line, this will install drivers for mysql
RUN docker-php-ext-install pdo pdo_mysql
I hope that helps to someone.
Delete or comment from .env file the line:
DATABASE_URL="postgresql://db_user:db_password#127.0.0.1:5432/db_name?serverVersion=13&charset=utf8"
I had the same problem to solve the problem:
type php --ini to see the path to the file php.init
if you are on vscode do ctr + click on the path otherwise follow the path manually on your computer to the file php.init make sure your open php.init file with admin right !!
edit the file and uncomment extension=pdo_mysql
save and retry php bin/console doctrine:database:create
type php -m for check if your're in list pdo_mysql
here an illustration

Laravel failed to listen on 127.0.0.1:8000 (reason ?)

So I just created a new project using the command:
laravel new blog
Then I started by changing the directory and do the command
php artisan serve
And this is what happened, more details:
I'm using laravel 8.0.1 (latest version)
I haven't run any command except the one I listed above
I'm using windows
I even updated the php to 7.4.10 (latest ver)
I came across the same issue.
This was how how I solved mine:
Goto the main PHP part, I mean the installed PHP from official website.
Look out for a folder named php.ini-development
Duplicate this file.
Then rename the copy to php.ini
Go back to your laravel project folder and rerun php artisan serve
PS: If there is any additional steps you took, you can as well comment them below:
XOXO
So actually i dont actually know what the reason is, but using the php -S localhost:8000 -t public
Check your PHP version in your local server and System variable path. Make sure they are using the same PHP version
I had this problem too, and I solved it in this way:
set: php.ini
variables_order = "GPCS"
This error is because the php.ini was not found.
run php --ini
Configuration File (php.ini) Path:
Loaded Configuration File: C:\php8\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
The line "Loaded Configuration File" would indicate the location of loaded php.ini, if not, rename the php.ini-development to php.ini

PMD Apex Can't find resource for rule on Windows

I'm trying to configure PMD for code analysis.
I'm using VS Code, already installed Java 10, downloaded several versions of PMD
I've installed the Apex PMD extension for VS Code and configured it as per it's instructions.
But keep getting the can't find resource error no matter which version I choose.
This is part of the output from VS Code
PMD Command: java -cp "C:\Code\pmd-bin-5.7.0\lib*" net.sourceforge.pmd.PMD -d "c:\Code\Lightning\src\classes\AccountController.cls" -f csv -R "C:\Code\ruleset\apex_default.xml"
error:Error: Command failed: java -cp "C:\Code\pmd-bin-5.7.0\lib*" net.sourceforge.pmd.PMD -d "c:\Code\Lightning\src\classes\AccountController.cls" -f csv -R "C:\Code\ruleset\apex_default.xml"
Sep 12, 2018 2:35:20 PM net.sourceforge.pmd.RulesetsFactoryUtils getRuleSets
SEVERE: Ruleset not found
net.sourceforge.pmd.RuleSetNotFoundException: Can't find resource 'category/apex/design.xml' for rule 'ExcessiveParameterList'. Make sure the resource is a valid file or URL and is on the CLASSPATH. Here's the current classpath: C:\Code\pmd-bin-5.7.0\lib\antlr-runtime-3.5.2.jar;C:\Code\pmd-bin-5.7.0\lib\antlr4-runtime-4.5.2-1.jar;C:\Code\pmd-bin-5.7.0\lib\asm-5.0.4.jar;C:\Code\pmd-bin-5.7.0\lib\commons-io-2.4.jar;C:\Code\pmd-bin-5.7.0\lib\commons-lang3-3.4.jar;C:\Code\pmd-bin-5.7.0\lib\groovy-2.4.7.jar;C:\Code\pmd-bin-5.7.0\lib\gson-2.5.jar;C:\Code\pmd-bin-5.7.0\lib\javacc-5.0.jar;C:\Code\pmd-bin-5.7.0\lib\jaxen-1.1.6.jar;C:\Code\pmd-bin-5.7.0\lib\jcommander-1.48.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-apex-5.7.0-apex-jorje-shaded.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-apex-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-core-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-cpp-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-cs-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-fortran-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-go-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-groovy-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-java-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-javascript-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-jsp-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-matlab-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-objectivec-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-perl-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-php-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-plsql-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-python-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-ruby-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-scala-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-swift-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-ui-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-visualforce-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-vm-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\pmd-xml-5.7.0.jar;C:\Code\pmd-bin-5.7.0\lib\rhino-1.7.7.jar;C:\Code\pmd-bin-5.7.0\lib\saxon-9.1.0.8-dom.jar;C:\Code\pmd-bin-5.7.0\lib\saxon-9.1.0.8.jar;C:\Code\pmd-bin-5.7.0\lib\scala-compiler-2.10.4.jar;C:\Code\pmd-bin-5.7.0\lib\scala-library-2.10.4.jar;C:\Code\pmd-bin-5.7.0\lib\scala-reflect-2.10.4.jar
If i run the command from command line I get a similar output.
This error is for every rule I have on my ruleset which is nothing out of the ordinary, it's the default ruleset that comes with the extension.
It works for me with PMD 6.7.0 and fails with 5.7.0:
The rule, you reference "category/apex/design.xml/ExcessiveParameterList" is available under this path only since PMD 6. With that version, we put the rules into categories.
When using PMD 5.7.0, you'll need to use the old ruleset: "rulesets/apex/complexity.xml/ExcessiveParameterList".
It's probably better to use the latest PMD version. Is there a way, to configure the Apex PMD extension?
See also https://github.com/pmd/pmd/issues/1344

Change jdk path for the integrated weblogic server in oracle soa suite

I keep getting this error after launching an integrated Weblogic server in Jdeveloper,
Starting WLS with line:
C:\PROGRA~1\Java\JDK18~1.0_2\bin\java -server -Xms768m -Xmx1536m -XX:PermSize=256m -XX:MaxPermSize=1024m -Dweblogic.Name=DefaultServer -Djava.security.policy=C:\Oracle\MIDDLE~1\ORACLE~1\wlserver\server\lib\weblogic.policy
-Djavax.net.ssl.trustStore=C:\Users\Idiot\AppData\Local\Temp\trustStore7893387873075798475.jks -Doracle.jdeveloper.adrs=true -Dweblogic.nodemanager.ServiceEnabled=true
-Xverify:none -Djava.endorsed.dirs=C:\PROGRA~1\Java\JDK18~1.0_2\jre\lib\endorsed;C:\Oracle\MIDDLE~1\ORACLE~1\oracle_common\modules\endorsed -Djava.protocol.handler.pkgs="oracle.mds.net.protocol|oracle.fabric.common.classloaderurl.handler|oracle.fabric.common.uddiurl.handler|oracle.bpm.io.fs.protocol" -Dopss.version=12.1.3
-Digf.arisidbeans.carmlloc=C:\Users\Idiot\AppData\Roaming\JDEVEL~1\SYSTEM~1.100\DEFAUL~1\config\fmwconfig\carml -Digf.arisidstack.home=C:\Users\Idiot\AppData\Roaming\JDEVEL~1\SYSTEM~1.100\DEFAUL~1\config\fmwconfig\arisidprovider
-Doracle.security.jps.config=C:\Users\Idiot\AppData\Roaming\JDEVEL~1\SYSTEM~1.100\DEFAUL~1\config\fmwconfig\jps-config.xml -Doracle.deployed.app.dir=C:\Users\Idiot\AppData\Roaming\JDEVEL~1\SYSTEM~1.100\DEFAUL~1\servers\DefaultServer\tmp\_WL_user -Doracle.deployed.app.ext=\- -Dweblogic.alternateTypesDirectory=C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.ossoiap_12.1.3,C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.oamprovider_12.1.3,C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jps_12.1.3 -Dweblogic.jdbc.remoteEnabled=false -Dcommon.components.home=C:\Oracle\Middleware\Oracle_Home\oracle_common -Djrf.version=12.1.3
-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger -Ddomain.home=C:\Users\Idiot\AppData\Roaming\JDEVEL~1\SYSTEM~1.100\DEFAUL~1 -Doracle.server.config.dir=C:\Users\Idiot\AppData\Roaming\JDEVEL~1\SYSTEM~1.100\DEFAUL~1\config\fmwconfig\servers\DefaultServer -Doracle.domain.config.dir=C:\Users\Idiot\AppData\Roaming\JDEVEL~1\SYSTEM~1.100\DEFAUL~1\config\fmwconfig -Doracle.mds.filestore.preferred=true -Dadf.version=12.1.3 -Doracle.osb.home=C:\Oracle\Middleware\Oracle_Home\osb -da
-Dwls.home=C:\Oracle\MIDDLE~1\ORACLE~1\wlserver\server -Dweblogic.home=C:\Oracle\MIDDLE~1\ORACLE~1\wlserver\server -Djps.app.credential.overwrite.allowed=true -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder -da:org.apache.xmlbeans... -Dem.oracle.home=C:\Oracle\Middleware\Oracle_Home\em -DINSTANCE_HOME=C:\Users\Idiot\AppData\Roaming\JDeveloper\system12.1.3.0.41.140521.1008\DefaultDomain -Djava.awt.headless=true -Doracle.sysman.util.logging.mode=dual_mode -Dsoa.archives.dir=C:\Oracle\Middleware\Oracle_Home\soa\soa -Dsoa.oracle.home=C:\Oracle\Middleware\Oracle_Home\soa -Dsoa.instance.home=C:\Users\Idiot\AppData\Roaming\JDEVEL~1\SYSTEM~1.100\DEFAUL~1
-Dtangosol.coherence.log=jdk -Djavax.xml.soap.MessageFactory=oracle.j2ee.ws.saaj.soap.MessageFactoryImpl -Dweblogic.transaction.blocking.commit=true -Dweblogic.transaction.blocking.rollback=true -Djavax.net.ssl.trustStore=C:\Oracle\MIDDLE~1\ORACLE~1\wlserver\server\lib\DemoTrust.jks -Doracle.xml.schema\Ignore_Duplicate_Components=true -Doracle.xdkjava.compatibility.version=11.1.1 -Doracle.soa.compatibility.version=11.1.1 -Dums.oracle.home=C:\Oracle\Middleware\Oracle_Home\oracle_common -Djava.util.logging.manager=oracle.core.ojdl.logging.ODLLogManager weblogic.Server
Stopping Derby server...
The system cannot find the path specified.
Derby server stopped.
I uninstalled the latest JDK8 and have only the 7th version in my computer. I checked my environment variables and all possible configuration files like jdev.conf and setENVvar.cmd
Has anyone faced the same issue?
Weblogic annoyingly hard codes the value of JAVA_HOME in ORACLE_HOME\wlserver\common\bin\commEnv.cmd around line 103. The shell version of the script does at least give the option to override this as long as both JAVE_HOME and JAVA_VENDOR are set, but there's no such feature in the Windows script I'm afraid - you just have to edit the file.
The Oracle installer puts the JDK path into several configuration files. You can find them by running e.g. this command within your Oracle_Home directory:
find . -type f -exec grep -H 'jdk1.8.0_31' '{}' \;
In my case the list was:
./inventory/Components/oracle.fmwconfig.common.wls/12.2.1.0.0/context.xml
./inventory/Components/oracle.nginst.core/13.3.0.0.0/context.xml
./inventory/Components/oracle.wls.core.app.server/12.2.1.0.0/context.xml
./inventory/Components/oracle.wls.core.app.server/12.2.1.0.0/installIP2Log.xml
./jdeveloper/jdev/bin/jdev.conf
./oep/common/lib/metaInstallUnix.properties
./oep/common/lib/metaInstallWindows.properties
./oep/utils/load-generator/runloadgen.cmd
./oep/utils/load-generator/runloadgen.sh
./OPatch/bin/listDomainPatchInventory.cmd
./OPatch/bin/listDomainPatchInventory.sh
./oracle_common/common/bin/commBaseEnv.cmd
./oracle_common/common/bin/commBaseEnv.sh
./oracle_common/common/bin/setHomeDirs.cmd
./oracle_common/common/bin/setHomeDirs.sh
./oui/bin/compareInventory.cmd
./oui/bin/compareInventory.sh
./oui/bin/internal/ilaunch.cmd
./oui/bin/launch.sh
./oui/bin/viewInventory.cmd
./oui/bin/viewInventory.sh
./oui/mw/common/framework/bin/configinternal.cmd
./oui/mw/common/framework/bin/configinternal.cmd
./oui/mw/common/framework/bin/configinternal.sh
After replacing the version, all works fine again.
In Jdev 12.1.3, the location to change is system12.1.3.??? folder /DefaultDomain/bin/setDomainEnv.cmd (or sh).
You will find the JDK path there in 3 places. Change all of them to be safe.
However, if you are running ADF on your Integrated server, you will need to resolve issues where older jars may not support Java 8. This includes the older mysql driver that Oracle wants to deploy by default.

How does one find out the version of Apache Pig programmatically?

I am using Pig through Cloudera's Hue (web interface), not through the command line. And, in fact, due to corporate restrictions, I have no access to the command line, but only to the Pig Shell itself through a the web interface.
I would like to find out my version of Apache Pig by means of some command that I can issue in the Pig language itself.
Does anybody know how to do it?
You can guess the version from the logs but if you put
--version
as a 'Pig parameter' in the properties tab in the left box it will print:
Apache Pig version 0.12.0-cdh5.3.0-SNAPSHOT (rexported) compiled Sep
29 2014, 03:12:32
Run pig script using PigRunner.run() for Pig version 0.8+ Apache Pig
version 0.12.0-cdh5.3.0-SNAPSHOT (rexported) compiled Sep 29 2014,
03:12:32
You can declare a variable in the properties file as follows:
PIG_VERSION `/home/hadoop/pig/bin/pig -version|head -n 1`
Those are backticks. Now in your script, PIG_VERSION will hold the version. In my case it holds:
Apache Pig version 0.12.0 (rexported)
A quick and dirty way to check the output is to try writing a file to 'SomeDirectory/$PIG_VERSION' and it will create a nested directory structure with each word.