Configuration Management in Drupal8
Configuration Management
Drumal 8 웹사이트 구성을 관리하는 기능을 코어 모듈로 제공한다.
config표의 내용을 보면 이미 사용된 모듈 일람표, 내용 디자인, 필드 등 모든 사이트 구성에 적용됩니다.
사이트 구성은 YAML 파일로 관리되며, Git 관리하에 놓으면 개발 사이트 → 정식 사이트에 대한 디버깅도 쉽게 할 수 있다.
Configuration Management 환경 설정
YAML 파일의 동기화 디렉토리 설정
settings.php의 $configdirectories ['sync']에서 저장 경로를 지정하면 됩니다.
기본적으로 사이트/default/files 아래의 무작위 폴더 이름입니다.$config_directories['sync'] = 'sites/default/files/config_rsOV0YGdqQaPzrUtJC44K8SL628s1lwq1PdYm883mIUKuT8jcUvp-j6q8QLgu16CdP3e8iGlpA/sync';
사이트/default/files 폴더는 관리 화면에서 업로드된 많은 파일을 저장하는 곳이기 때문에Giit 관리에서 자주 삭제됩니다.
이럴 땐 다른 경로를 지정해.$config_directories['sync'] = 'sites/default/config/sync';
기본적으로는'sync'이지만 각 환경을'dev','staging','prood'로 나누어 공식 사이트를 안전하게 활용한다는 의견도 있다.
일치하는 사이트의 UID
구성 컨텐트를 가져올 때 클론의 DB가 아닌 경우 UUID 불일치 정보가 표시되므로 가져올 수 없습니다.The import failed due for the following reasons: [error]
Site UUID in source storage does not match the target storage.
(ソースのストレージにあるサイトのUUIDが、対象のストレージに一致しません。)
이 경우 터미널에서 drush 명령을 사용하여 다음 절차에 따라 UUID를 일치시킬 수 있습니다.
먼저 동기화 소스 웹 사이트의 UID를 확인합니다.$ drush config-get system.site
uuid: 86d5e75a-f927-4a9a-9739-9093888f4050
동기화 소스 사이트의 UID를 동기화 대상 사이트로 설정합니다.$ drush config-set system.site uuid 86d5e75a-f927-4a9a-9739-9093888f4050
이렇게 하면 사이트 구성을 순조롭게 도입할 수 있다.
Configuration Management 관리 화면
Configuration Management 관리 화면을 열 때 이 경로에 액세스하십시오.
/admin/config/development/configuration
동기
동기화 탭에서는 YAML 파일과 DB에 저장된 사이트의 차이를 확인할 수 있으며, [모두 가져오기] 버튼을 클릭하면 YAML 파일의 내용을 가져올 수 있습니다.
만약 차별이 없다면 화면에 무엇이 표시될 것이다.
가져오기
모든 사이트 구성을 가져옵니다.gz로 압축된 YAML 파일을 지정합니다.
사이트 구성을 개별적으로 가져올 수도 있습니다.
내보내기
전체 사이트 구조의 내보내기는 tar이다.gz로 압축된 YAML 파일을 지정합니다.
사이트 구성도 따로 받을 수 있다.
Drush 명령을 사용하여 사이트 구성 가져오기/내보내기
위에서 소개한 관리 화면에서도 사이트 구성을 동기화할 수 있지만 개발자의 경우 Drush 지령을 사용하면 동작이 수월할 뿐만 아니라 Giit 지령을 사용하는 파일의 차이도 쉽게 알 수 있기 때문에 이 조작이 주요하다고 생각합니다.
내보내기
사이트 설정을 내보내는 config-export 옵션을 지정합니다. (별명은cex)
config-export 옵션 뒤에 디렉터리 탭을 지정합니다.
기본값은 sync, settings입니다.php의 $configdirectories를 통해 경로를 지정했습니다.$ drush cex sync
(Drush는 기본적으로 sync 경로를 읽으므로 sync는 생략할 수 있음)
가져오기
사이트 설정을 가져오는 데 사용할 config-import 옵션을 지정합니다. (별명은 cim)$ drush cim sync
동기화 대상에서 특정 모듈 제거
개발 시조 시용 모듈의 설정 등은 공식 환경에 반영하고 싶지 않다.
특정 모듈의 설정을 제거하려면 --skip-modules 매개 변수를 사용합니다.$ drush cim -y --skip-modules=devel,kint
$ drush cex -y --skip-modules=devel,kint
이것은 개발자,kint 모듈이 비활성화된 다른 환경의 영향을 피할 수 있습니다.
그러나 모듈 주위의 설정값을 제외해도 관련 실체는 배제되지 않는다.
개발 모듈, 예를 들어 개발자는 좋지만 실체와 관련된 모듈이면 가져올 때 의존 오류가 발생할 수 있으므로 주의해야 합니다.
매번 지정--skip-modules 매개 변수가 번거로울 때drushrc.미리 php에 추가하면 되죠./**
* @file
* Drush configuration file drush/drushrc.php
*/
$command_specific['config-export']['skip-modules'] = array('devel', 'kint');
$command_specific['config-import']['skip-modules'] = array('devel', 'kint');
사이트 설정 편집
config-edit 옵션을 지정하면 사이트 설정을 편집할 수 있습니다.$ drush config-edit
Choose a configuration.
[0] : Cancel
[1] : action.settings
[2] : aes.settings
[3] : block.block.breadcrumbs
[4] : block.block.testsite_admin
[5] : block.block.testsite_branding
[6] : block.block.testsite_local_actions
[7] : block.block.testsite_local_tasks
[8] : block.block.testsite_login
[9] : block.block.testsite_messages
[10] : block.block.testsite_page_title
・・・
번호 입력 - Enter에서 vi 편집기의 편집 화면을 엽니다.
편집 후 저장하면 바로 사이트 설정에 반영됩니다.
config-edit 뒤에서 직접 설정 이름을 지정할 수도 있습니다.$ drush config-edit image.style.large
CMI 하위 모듈
Giit 워크플로우를 지원하는 하위 모듈 그룹입니다.
Configuration Tools
https://github.com/previousnext/drush_cmi_tools
Configuration Update Manager
https://www.drupal.org/project/config_update
Configuration Development
https://www.drupal.org/project/config_devel
Configuration Synchronizer
https://www.drupal.org/project/config_sync
Configuration Extra
https://github.com/drush-ops/config-extra
소절
고정 로컬 환경의 사이트 설정 값
D7의 $conf
와 마찬가지로 settings.php에는 $config
의 설정 변수가 있습니다. 이 고정된 로컬 설정을 사용할 수 있습니다.$config['name-of.config']['nested']['key']
샘플 설정) SMTP 모듈$config['smtp.settings']['smtp_on'] = true;
$config['smtp.settings']['smtp_host'] = 'mail.example.com';
$config['smtp.settings']['smtp_port'] = '587';
$config['smtp.settings']['smtp_protocol'] = 'standard';
$config['smtp.settings']['smtp_username'] = '[email protected]';
$config['smtp.settings']['smtp_password'] = '*****';
$config['system.mail']['interface']['default'] = 'SMTPMailSystem';
이렇게 기술하면 YAML 파일과 DB의 사이트 구성값이 무시된다.$config
에서 수치를 덮어쓸 때, 신경 쓸 점으로 drush config-get을 실행할 때 관리 화면에 입력한 값 (config표의 값) 을 표시합니다.
그것을 피하기 위해서 --include-overridden
파라미터를 추가합니다.이름과 같이 덮어쓰기 값을 얻는다는 뜻입니다.
이 매개변수를 설정하면 면$config
면에 대한 정확한 값을 얻을 수 있습니다.drush config-get smtp.settings smtp_username --include-overridden
D7 때$conf
값을 덮어쓰면 관리 화면에서 필드가 회색조로 출력된 후 값이 덮어쓰이지만 D8(현재 버전 Drumal 8.2.5)에서는 오류가 있거나 좋은 기능이 없는 것 같은데...아마 Droper 8.3 이후에 수정될 것 같으니 그 전에 참아야 한다.
참조)https://www.drupal.org/node/2408549
통합 Git 및 CMI
개발 환경에서 무대로 직접 자원을 펼칠 수 있다.$ drush @stage ssh git fetch
$ drush @stage ssh git checkout develop
$ drush @stage config-import
\stage 섹션은 미리 drushrc입니다.php로 미리 정의해야 합니다.
참조)http://handbook.deeson.co.uk/development/drupal8/
사이트 설정을 포지셔닝 환경에서 로컬 환경으로 통합합니다.$ drush @dev config-merge @stage --git --message="#28941 bug fix."
어떻게 dev 환경과 정식 환경의 설정 차이를 흡수합니까?
가져오기/내보내기 시 -skip-modules를 사용하면 특정 모듈을 배제할 수 있기 때문에 각 사이트의 차이를 흡수할 수 있어야 한다.
아니면 skip-modules를 사용하지 않고 단순하게.gitignore를 통해 특정 YAML 파일을 제외하는 방법도 있습니다.
https://github.com/drush-ops/drush/issues/1820
피처 모듈 뭐가 좋아요?
D7의 워크플로우를 잘 알고 있다면 Feature 모듈을 선택하는 것도 좋습니다.
CMI는 이미 결정된 단위의 구성만 수용할 수 있지만, 피처는 구성 단위를 자유롭게 결정할 수 있다는 게 장점이다.
Feature 모듈은 화면상의 조작을 관리할 뿐만 아니라 Drush 명령도 지원하며 구성에 따라 가져올 수도 있고 모든 구성을 통일적으로 가져올 수도 있다.
한편, CMI는 지트와 친화력이 높아 지트와 협업해 작업흐름을 형성하기 쉽다는 점이 장점이다.
나는 프로젝트 구성원들 사이에서 CMI와 Feature를 결정하는 것이 좋다고 생각한다.
블록과 내용의 deburoi는 어떻게 합니까?
D7에서는 피처 모듈과 uid 모듈이 협력해 정보 블록과 내용도 파일로 만들었다.
D8에서는 Uid 기능이 코어에서 가져오기 때문에 Uid 모듈의 개발이 중단되고 D8 버전 피처 모듈과 Uid 모듈이 연합할 수 없습니다.앞으로feature 모듈이 내용 디버깅에 대응하는지도 알 수 없다.
2018년 발매 예정인 드롭8.5중 코어에 콘텐츠 디자인 기능이 탑재됐다는 소문이 돌았지만 2017년 D8에는 그런 기능이 없었다.
만약 D8을 이용하여 내용 디버깅을 가능한 모듈인'Deploy'나'Default Contentfor D8'으로 만들면 해결할 수 있으나 어느 것이든 알파 버전의 상태에서 아직 안정적인 동작이 없다.
Deploy
https://www.drupal.org/project/deploy
Default Content for D8
https://www.drupal.org/project/default_content
일시적인 대응 전략으로 데이터베이스 내용에 맞는 표를 가져가는 것도 고려할 수 있지만 다른 사람들은 어떻게 디버깅을 했을까.(좋은 방법이 있으면 꼭 알려주세요.)
Reference
이 문제에 관하여(Configuration Management in Drupal8), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/J_Sugar__/items/4272f88d7f2d355179b9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
YAML 파일의 동기화 디렉토리 설정
settings.php의 $configdirectories ['sync']에서 저장 경로를 지정하면 됩니다.
기본적으로 사이트/default/files 아래의 무작위 폴더 이름입니다.
$config_directories['sync'] = 'sites/default/files/config_rsOV0YGdqQaPzrUtJC44K8SL628s1lwq1PdYm883mIUKuT8jcUvp-j6q8QLgu16CdP3e8iGlpA/sync';
사이트/default/files 폴더는 관리 화면에서 업로드된 많은 파일을 저장하는 곳이기 때문에Giit 관리에서 자주 삭제됩니다.이럴 땐 다른 경로를 지정해.
$config_directories['sync'] = 'sites/default/config/sync';
기본적으로는'sync'이지만 각 환경을'dev','staging','prood'로 나누어 공식 사이트를 안전하게 활용한다는 의견도 있다.일치하는 사이트의 UID
구성 컨텐트를 가져올 때 클론의 DB가 아닌 경우 UUID 불일치 정보가 표시되므로 가져올 수 없습니다.
The import failed due for the following reasons: [error]
Site UUID in source storage does not match the target storage.
(ソースのストレージにあるサイトのUUIDが、対象のストレージに一致しません。)
이 경우 터미널에서 drush 명령을 사용하여 다음 절차에 따라 UUID를 일치시킬 수 있습니다.먼저 동기화 소스 웹 사이트의 UID를 확인합니다.
$ drush config-get system.site
uuid: 86d5e75a-f927-4a9a-9739-9093888f4050
동기화 소스 사이트의 UID를 동기화 대상 사이트로 설정합니다.$ drush config-set system.site uuid 86d5e75a-f927-4a9a-9739-9093888f4050
이렇게 하면 사이트 구성을 순조롭게 도입할 수 있다.Configuration Management 관리 화면
Configuration Management 관리 화면을 열 때 이 경로에 액세스하십시오.
/admin/config/development/configuration
동기
동기화 탭에서는 YAML 파일과 DB에 저장된 사이트의 차이를 확인할 수 있으며, [모두 가져오기] 버튼을 클릭하면 YAML 파일의 내용을 가져올 수 있습니다.
만약 차별이 없다면 화면에 무엇이 표시될 것이다.
가져오기
모든 사이트 구성을 가져옵니다.gz로 압축된 YAML 파일을 지정합니다.
사이트 구성을 개별적으로 가져올 수도 있습니다.
내보내기
전체 사이트 구조의 내보내기는 tar이다.gz로 압축된 YAML 파일을 지정합니다.
사이트 구성도 따로 받을 수 있다.
Drush 명령을 사용하여 사이트 구성 가져오기/내보내기
위에서 소개한 관리 화면에서도 사이트 구성을 동기화할 수 있지만 개발자의 경우 Drush 지령을 사용하면 동작이 수월할 뿐만 아니라 Giit 지령을 사용하는 파일의 차이도 쉽게 알 수 있기 때문에 이 조작이 주요하다고 생각합니다.
내보내기
사이트 설정을 내보내는 config-export 옵션을 지정합니다. (별명은cex)
config-export 옵션 뒤에 디렉터리 탭을 지정합니다.
기본값은 sync, settings입니다.php의 $configdirectories를 통해 경로를 지정했습니다.$ drush cex sync
(Drush는 기본적으로 sync 경로를 읽으므로 sync는 생략할 수 있음)
가져오기
사이트 설정을 가져오는 데 사용할 config-import 옵션을 지정합니다. (별명은 cim)$ drush cim sync
동기화 대상에서 특정 모듈 제거
개발 시조 시용 모듈의 설정 등은 공식 환경에 반영하고 싶지 않다.
특정 모듈의 설정을 제거하려면 --skip-modules 매개 변수를 사용합니다.$ drush cim -y --skip-modules=devel,kint
$ drush cex -y --skip-modules=devel,kint
이것은 개발자,kint 모듈이 비활성화된 다른 환경의 영향을 피할 수 있습니다.
그러나 모듈 주위의 설정값을 제외해도 관련 실체는 배제되지 않는다.
개발 모듈, 예를 들어 개발자는 좋지만 실체와 관련된 모듈이면 가져올 때 의존 오류가 발생할 수 있으므로 주의해야 합니다.
매번 지정--skip-modules 매개 변수가 번거로울 때drushrc.미리 php에 추가하면 되죠./**
* @file
* Drush configuration file drush/drushrc.php
*/
$command_specific['config-export']['skip-modules'] = array('devel', 'kint');
$command_specific['config-import']['skip-modules'] = array('devel', 'kint');
사이트 설정 편집
config-edit 옵션을 지정하면 사이트 설정을 편집할 수 있습니다.$ drush config-edit
Choose a configuration.
[0] : Cancel
[1] : action.settings
[2] : aes.settings
[3] : block.block.breadcrumbs
[4] : block.block.testsite_admin
[5] : block.block.testsite_branding
[6] : block.block.testsite_local_actions
[7] : block.block.testsite_local_tasks
[8] : block.block.testsite_login
[9] : block.block.testsite_messages
[10] : block.block.testsite_page_title
・・・
번호 입력 - Enter에서 vi 편집기의 편집 화면을 엽니다.
편집 후 저장하면 바로 사이트 설정에 반영됩니다.
config-edit 뒤에서 직접 설정 이름을 지정할 수도 있습니다.$ drush config-edit image.style.large
CMI 하위 모듈
Giit 워크플로우를 지원하는 하위 모듈 그룹입니다.
Configuration Tools
https://github.com/previousnext/drush_cmi_tools
Configuration Update Manager
https://www.drupal.org/project/config_update
Configuration Development
https://www.drupal.org/project/config_devel
Configuration Synchronizer
https://www.drupal.org/project/config_sync
Configuration Extra
https://github.com/drush-ops/config-extra
소절
고정 로컬 환경의 사이트 설정 값
D7의 $conf
와 마찬가지로 settings.php에는 $config
의 설정 변수가 있습니다. 이 고정된 로컬 설정을 사용할 수 있습니다.$config['name-of.config']['nested']['key']
샘플 설정) SMTP 모듈$config['smtp.settings']['smtp_on'] = true;
$config['smtp.settings']['smtp_host'] = 'mail.example.com';
$config['smtp.settings']['smtp_port'] = '587';
$config['smtp.settings']['smtp_protocol'] = 'standard';
$config['smtp.settings']['smtp_username'] = '[email protected]';
$config['smtp.settings']['smtp_password'] = '*****';
$config['system.mail']['interface']['default'] = 'SMTPMailSystem';
이렇게 기술하면 YAML 파일과 DB의 사이트 구성값이 무시된다.$config
에서 수치를 덮어쓸 때, 신경 쓸 점으로 drush config-get을 실행할 때 관리 화면에 입력한 값 (config표의 값) 을 표시합니다.
그것을 피하기 위해서 --include-overridden
파라미터를 추가합니다.이름과 같이 덮어쓰기 값을 얻는다는 뜻입니다.
이 매개변수를 설정하면 면$config
면에 대한 정확한 값을 얻을 수 있습니다.drush config-get smtp.settings smtp_username --include-overridden
D7 때$conf
값을 덮어쓰면 관리 화면에서 필드가 회색조로 출력된 후 값이 덮어쓰이지만 D8(현재 버전 Drumal 8.2.5)에서는 오류가 있거나 좋은 기능이 없는 것 같은데...아마 Droper 8.3 이후에 수정될 것 같으니 그 전에 참아야 한다.
참조)https://www.drupal.org/node/2408549
통합 Git 및 CMI
개발 환경에서 무대로 직접 자원을 펼칠 수 있다.$ drush @stage ssh git fetch
$ drush @stage ssh git checkout develop
$ drush @stage config-import
\stage 섹션은 미리 drushrc입니다.php로 미리 정의해야 합니다.
참조)http://handbook.deeson.co.uk/development/drupal8/
사이트 설정을 포지셔닝 환경에서 로컬 환경으로 통합합니다.$ drush @dev config-merge @stage --git --message="#28941 bug fix."
어떻게 dev 환경과 정식 환경의 설정 차이를 흡수합니까?
가져오기/내보내기 시 -skip-modules를 사용하면 특정 모듈을 배제할 수 있기 때문에 각 사이트의 차이를 흡수할 수 있어야 한다.
아니면 skip-modules를 사용하지 않고 단순하게.gitignore를 통해 특정 YAML 파일을 제외하는 방법도 있습니다.
https://github.com/drush-ops/drush/issues/1820
피처 모듈 뭐가 좋아요?
D7의 워크플로우를 잘 알고 있다면 Feature 모듈을 선택하는 것도 좋습니다.
CMI는 이미 결정된 단위의 구성만 수용할 수 있지만, 피처는 구성 단위를 자유롭게 결정할 수 있다는 게 장점이다.
Feature 모듈은 화면상의 조작을 관리할 뿐만 아니라 Drush 명령도 지원하며 구성에 따라 가져올 수도 있고 모든 구성을 통일적으로 가져올 수도 있다.
한편, CMI는 지트와 친화력이 높아 지트와 협업해 작업흐름을 형성하기 쉽다는 점이 장점이다.
나는 프로젝트 구성원들 사이에서 CMI와 Feature를 결정하는 것이 좋다고 생각한다.
블록과 내용의 deburoi는 어떻게 합니까?
D7에서는 피처 모듈과 uid 모듈이 협력해 정보 블록과 내용도 파일로 만들었다.
D8에서는 Uid 기능이 코어에서 가져오기 때문에 Uid 모듈의 개발이 중단되고 D8 버전 피처 모듈과 Uid 모듈이 연합할 수 없습니다.앞으로feature 모듈이 내용 디버깅에 대응하는지도 알 수 없다.
2018년 발매 예정인 드롭8.5중 코어에 콘텐츠 디자인 기능이 탑재됐다는 소문이 돌았지만 2017년 D8에는 그런 기능이 없었다.
만약 D8을 이용하여 내용 디버깅을 가능한 모듈인'Deploy'나'Default Contentfor D8'으로 만들면 해결할 수 있으나 어느 것이든 알파 버전의 상태에서 아직 안정적인 동작이 없다.
Deploy
https://www.drupal.org/project/deploy
Default Content for D8
https://www.drupal.org/project/default_content
일시적인 대응 전략으로 데이터베이스 내용에 맞는 표를 가져가는 것도 고려할 수 있지만 다른 사람들은 어떻게 디버깅을 했을까.(좋은 방법이 있으면 꼭 알려주세요.)
Reference
이 문제에 관하여(Configuration Management in Drupal8), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/J_Sugar__/items/4272f88d7f2d355179b9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
위에서 소개한 관리 화면에서도 사이트 구성을 동기화할 수 있지만 개발자의 경우 Drush 지령을 사용하면 동작이 수월할 뿐만 아니라 Giit 지령을 사용하는 파일의 차이도 쉽게 알 수 있기 때문에 이 조작이 주요하다고 생각합니다.
내보내기
사이트 설정을 내보내는 config-export 옵션을 지정합니다. (별명은cex)
config-export 옵션 뒤에 디렉터리 탭을 지정합니다.
기본값은 sync, settings입니다.php의 $configdirectories를 통해 경로를 지정했습니다.
$ drush cex sync
(Drush는 기본적으로 sync 경로를 읽으므로 sync는 생략할 수 있음)가져오기
사이트 설정을 가져오는 데 사용할 config-import 옵션을 지정합니다. (별명은 cim)
$ drush cim sync
동기화 대상에서 특정 모듈 제거
개발 시조 시용 모듈의 설정 등은 공식 환경에 반영하고 싶지 않다.
특정 모듈의 설정을 제거하려면 --skip-modules 매개 변수를 사용합니다.$ drush cim -y --skip-modules=devel,kint
$ drush cex -y --skip-modules=devel,kint
이것은 개발자,kint 모듈이 비활성화된 다른 환경의 영향을 피할 수 있습니다.
그러나 모듈 주위의 설정값을 제외해도 관련 실체는 배제되지 않는다.
개발 모듈, 예를 들어 개발자는 좋지만 실체와 관련된 모듈이면 가져올 때 의존 오류가 발생할 수 있으므로 주의해야 합니다.
매번 지정--skip-modules 매개 변수가 번거로울 때drushrc.미리 php에 추가하면 되죠./**
* @file
* Drush configuration file drush/drushrc.php
*/
$command_specific['config-export']['skip-modules'] = array('devel', 'kint');
$command_specific['config-import']['skip-modules'] = array('devel', 'kint');
사이트 설정 편집
config-edit 옵션을 지정하면 사이트 설정을 편집할 수 있습니다.$ drush config-edit
Choose a configuration.
[0] : Cancel
[1] : action.settings
[2] : aes.settings
[3] : block.block.breadcrumbs
[4] : block.block.testsite_admin
[5] : block.block.testsite_branding
[6] : block.block.testsite_local_actions
[7] : block.block.testsite_local_tasks
[8] : block.block.testsite_login
[9] : block.block.testsite_messages
[10] : block.block.testsite_page_title
・・・
번호 입력 - Enter에서 vi 편집기의 편집 화면을 엽니다.
편집 후 저장하면 바로 사이트 설정에 반영됩니다.
config-edit 뒤에서 직접 설정 이름을 지정할 수도 있습니다.$ drush config-edit image.style.large
CMI 하위 모듈
Giit 워크플로우를 지원하는 하위 모듈 그룹입니다.
Configuration Tools
https://github.com/previousnext/drush_cmi_tools
Configuration Update Manager
https://www.drupal.org/project/config_update
Configuration Development
https://www.drupal.org/project/config_devel
Configuration Synchronizer
https://www.drupal.org/project/config_sync
Configuration Extra
https://github.com/drush-ops/config-extra
소절
고정 로컬 환경의 사이트 설정 값
D7의 $conf
와 마찬가지로 settings.php에는 $config
의 설정 변수가 있습니다. 이 고정된 로컬 설정을 사용할 수 있습니다.$config['name-of.config']['nested']['key']
샘플 설정) SMTP 모듈$config['smtp.settings']['smtp_on'] = true;
$config['smtp.settings']['smtp_host'] = 'mail.example.com';
$config['smtp.settings']['smtp_port'] = '587';
$config['smtp.settings']['smtp_protocol'] = 'standard';
$config['smtp.settings']['smtp_username'] = '[email protected]';
$config['smtp.settings']['smtp_password'] = '*****';
$config['system.mail']['interface']['default'] = 'SMTPMailSystem';
이렇게 기술하면 YAML 파일과 DB의 사이트 구성값이 무시된다.$config
에서 수치를 덮어쓸 때, 신경 쓸 점으로 drush config-get을 실행할 때 관리 화면에 입력한 값 (config표의 값) 을 표시합니다.
그것을 피하기 위해서 --include-overridden
파라미터를 추가합니다.이름과 같이 덮어쓰기 값을 얻는다는 뜻입니다.
이 매개변수를 설정하면 면$config
면에 대한 정확한 값을 얻을 수 있습니다.drush config-get smtp.settings smtp_username --include-overridden
D7 때$conf
값을 덮어쓰면 관리 화면에서 필드가 회색조로 출력된 후 값이 덮어쓰이지만 D8(현재 버전 Drumal 8.2.5)에서는 오류가 있거나 좋은 기능이 없는 것 같은데...아마 Droper 8.3 이후에 수정될 것 같으니 그 전에 참아야 한다.
참조)https://www.drupal.org/node/2408549
통합 Git 및 CMI
개발 환경에서 무대로 직접 자원을 펼칠 수 있다.$ drush @stage ssh git fetch
$ drush @stage ssh git checkout develop
$ drush @stage config-import
\stage 섹션은 미리 drushrc입니다.php로 미리 정의해야 합니다.
참조)http://handbook.deeson.co.uk/development/drupal8/
사이트 설정을 포지셔닝 환경에서 로컬 환경으로 통합합니다.$ drush @dev config-merge @stage --git --message="#28941 bug fix."
어떻게 dev 환경과 정식 환경의 설정 차이를 흡수합니까?
가져오기/내보내기 시 -skip-modules를 사용하면 특정 모듈을 배제할 수 있기 때문에 각 사이트의 차이를 흡수할 수 있어야 한다.
아니면 skip-modules를 사용하지 않고 단순하게.gitignore를 통해 특정 YAML 파일을 제외하는 방법도 있습니다.
https://github.com/drush-ops/drush/issues/1820
피처 모듈 뭐가 좋아요?
D7의 워크플로우를 잘 알고 있다면 Feature 모듈을 선택하는 것도 좋습니다.
CMI는 이미 결정된 단위의 구성만 수용할 수 있지만, 피처는 구성 단위를 자유롭게 결정할 수 있다는 게 장점이다.
Feature 모듈은 화면상의 조작을 관리할 뿐만 아니라 Drush 명령도 지원하며 구성에 따라 가져올 수도 있고 모든 구성을 통일적으로 가져올 수도 있다.
한편, CMI는 지트와 친화력이 높아 지트와 협업해 작업흐름을 형성하기 쉽다는 점이 장점이다.
나는 프로젝트 구성원들 사이에서 CMI와 Feature를 결정하는 것이 좋다고 생각한다.
블록과 내용의 deburoi는 어떻게 합니까?
D7에서는 피처 모듈과 uid 모듈이 협력해 정보 블록과 내용도 파일로 만들었다.
D8에서는 Uid 기능이 코어에서 가져오기 때문에 Uid 모듈의 개발이 중단되고 D8 버전 피처 모듈과 Uid 모듈이 연합할 수 없습니다.앞으로feature 모듈이 내용 디버깅에 대응하는지도 알 수 없다.
2018년 발매 예정인 드롭8.5중 코어에 콘텐츠 디자인 기능이 탑재됐다는 소문이 돌았지만 2017년 D8에는 그런 기능이 없었다.
만약 D8을 이용하여 내용 디버깅을 가능한 모듈인'Deploy'나'Default Contentfor D8'으로 만들면 해결할 수 있으나 어느 것이든 알파 버전의 상태에서 아직 안정적인 동작이 없다.
Deploy
https://www.drupal.org/project/deploy
Default Content for D8
https://www.drupal.org/project/default_content
일시적인 대응 전략으로 데이터베이스 내용에 맞는 표를 가져가는 것도 고려할 수 있지만 다른 사람들은 어떻게 디버깅을 했을까.(좋은 방법이 있으면 꼭 알려주세요.)
Reference
이 문제에 관하여(Configuration Management in Drupal8), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/J_Sugar__/items/4272f88d7f2d355179b9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ drush cim -y --skip-modules=devel,kint
$ drush cex -y --skip-modules=devel,kint
/**
* @file
* Drush configuration file drush/drushrc.php
*/
$command_specific['config-export']['skip-modules'] = array('devel', 'kint');
$command_specific['config-import']['skip-modules'] = array('devel', 'kint');
config-edit 옵션을 지정하면 사이트 설정을 편집할 수 있습니다.
$ drush config-edit
Choose a configuration.
[0] : Cancel
[1] : action.settings
[2] : aes.settings
[3] : block.block.breadcrumbs
[4] : block.block.testsite_admin
[5] : block.block.testsite_branding
[6] : block.block.testsite_local_actions
[7] : block.block.testsite_local_tasks
[8] : block.block.testsite_login
[9] : block.block.testsite_messages
[10] : block.block.testsite_page_title
・・・
번호 입력 - Enter에서 vi 편집기의 편집 화면을 엽니다.편집 후 저장하면 바로 사이트 설정에 반영됩니다.
config-edit 뒤에서 직접 설정 이름을 지정할 수도 있습니다.
$ drush config-edit image.style.large
CMI 하위 모듈
Giit 워크플로우를 지원하는 하위 모듈 그룹입니다.
Configuration Tools
https://github.com/previousnext/drush_cmi_tools
Configuration Update Manager
https://www.drupal.org/project/config_update
Configuration Development
https://www.drupal.org/project/config_devel
Configuration Synchronizer
https://www.drupal.org/project/config_sync
Configuration Extra
https://github.com/drush-ops/config-extra
소절
고정 로컬 환경의 사이트 설정 값
D7의 $conf
와 마찬가지로 settings.php에는 $config
의 설정 변수가 있습니다. 이 고정된 로컬 설정을 사용할 수 있습니다.$config['name-of.config']['nested']['key']
샘플 설정) SMTP 모듈$config['smtp.settings']['smtp_on'] = true;
$config['smtp.settings']['smtp_host'] = 'mail.example.com';
$config['smtp.settings']['smtp_port'] = '587';
$config['smtp.settings']['smtp_protocol'] = 'standard';
$config['smtp.settings']['smtp_username'] = '[email protected]';
$config['smtp.settings']['smtp_password'] = '*****';
$config['system.mail']['interface']['default'] = 'SMTPMailSystem';
이렇게 기술하면 YAML 파일과 DB의 사이트 구성값이 무시된다.$config
에서 수치를 덮어쓸 때, 신경 쓸 점으로 drush config-get을 실행할 때 관리 화면에 입력한 값 (config표의 값) 을 표시합니다.
그것을 피하기 위해서 --include-overridden
파라미터를 추가합니다.이름과 같이 덮어쓰기 값을 얻는다는 뜻입니다.
이 매개변수를 설정하면 면$config
면에 대한 정확한 값을 얻을 수 있습니다.drush config-get smtp.settings smtp_username --include-overridden
D7 때$conf
값을 덮어쓰면 관리 화면에서 필드가 회색조로 출력된 후 값이 덮어쓰이지만 D8(현재 버전 Drumal 8.2.5)에서는 오류가 있거나 좋은 기능이 없는 것 같은데...아마 Droper 8.3 이후에 수정될 것 같으니 그 전에 참아야 한다.
참조)https://www.drupal.org/node/2408549
통합 Git 및 CMI
개발 환경에서 무대로 직접 자원을 펼칠 수 있다.$ drush @stage ssh git fetch
$ drush @stage ssh git checkout develop
$ drush @stage config-import
\stage 섹션은 미리 drushrc입니다.php로 미리 정의해야 합니다.
참조)http://handbook.deeson.co.uk/development/drupal8/
사이트 설정을 포지셔닝 환경에서 로컬 환경으로 통합합니다.$ drush @dev config-merge @stage --git --message="#28941 bug fix."
어떻게 dev 환경과 정식 환경의 설정 차이를 흡수합니까?
가져오기/내보내기 시 -skip-modules를 사용하면 특정 모듈을 배제할 수 있기 때문에 각 사이트의 차이를 흡수할 수 있어야 한다.
아니면 skip-modules를 사용하지 않고 단순하게.gitignore를 통해 특정 YAML 파일을 제외하는 방법도 있습니다.
https://github.com/drush-ops/drush/issues/1820
피처 모듈 뭐가 좋아요?
D7의 워크플로우를 잘 알고 있다면 Feature 모듈을 선택하는 것도 좋습니다.
CMI는 이미 결정된 단위의 구성만 수용할 수 있지만, 피처는 구성 단위를 자유롭게 결정할 수 있다는 게 장점이다.
Feature 모듈은 화면상의 조작을 관리할 뿐만 아니라 Drush 명령도 지원하며 구성에 따라 가져올 수도 있고 모든 구성을 통일적으로 가져올 수도 있다.
한편, CMI는 지트와 친화력이 높아 지트와 협업해 작업흐름을 형성하기 쉽다는 점이 장점이다.
나는 프로젝트 구성원들 사이에서 CMI와 Feature를 결정하는 것이 좋다고 생각한다.
블록과 내용의 deburoi는 어떻게 합니까?
D7에서는 피처 모듈과 uid 모듈이 협력해 정보 블록과 내용도 파일로 만들었다.
D8에서는 Uid 기능이 코어에서 가져오기 때문에 Uid 모듈의 개발이 중단되고 D8 버전 피처 모듈과 Uid 모듈이 연합할 수 없습니다.앞으로feature 모듈이 내용 디버깅에 대응하는지도 알 수 없다.
2018년 발매 예정인 드롭8.5중 코어에 콘텐츠 디자인 기능이 탑재됐다는 소문이 돌았지만 2017년 D8에는 그런 기능이 없었다.
만약 D8을 이용하여 내용 디버깅을 가능한 모듈인'Deploy'나'Default Contentfor D8'으로 만들면 해결할 수 있으나 어느 것이든 알파 버전의 상태에서 아직 안정적인 동작이 없다.
Deploy
https://www.drupal.org/project/deploy
Default Content for D8
https://www.drupal.org/project/default_content
일시적인 대응 전략으로 데이터베이스 내용에 맞는 표를 가져가는 것도 고려할 수 있지만 다른 사람들은 어떻게 디버깅을 했을까.(좋은 방법이 있으면 꼭 알려주세요.)
Reference
이 문제에 관하여(Configuration Management in Drupal8), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/J_Sugar__/items/4272f88d7f2d355179b9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
고정 로컬 환경의 사이트 설정 값
D7의
$conf
와 마찬가지로 settings.php에는 $config
의 설정 변수가 있습니다. 이 고정된 로컬 설정을 사용할 수 있습니다.$config['name-of.config']['nested']['key']
샘플 설정) SMTP 모듈$config['smtp.settings']['smtp_on'] = true;
$config['smtp.settings']['smtp_host'] = 'mail.example.com';
$config['smtp.settings']['smtp_port'] = '587';
$config['smtp.settings']['smtp_protocol'] = 'standard';
$config['smtp.settings']['smtp_username'] = '[email protected]';
$config['smtp.settings']['smtp_password'] = '*****';
$config['system.mail']['interface']['default'] = 'SMTPMailSystem';
이렇게 기술하면 YAML 파일과 DB의 사이트 구성값이 무시된다.$config
에서 수치를 덮어쓸 때, 신경 쓸 점으로 drush config-get을 실행할 때 관리 화면에 입력한 값 (config표의 값) 을 표시합니다.그것을 피하기 위해서
--include-overridden
파라미터를 추가합니다.이름과 같이 덮어쓰기 값을 얻는다는 뜻입니다.이 매개변수를 설정하면 면
$config
면에 대한 정확한 값을 얻을 수 있습니다.drush config-get smtp.settings smtp_username --include-overridden
D7 때
$conf
값을 덮어쓰면 관리 화면에서 필드가 회색조로 출력된 후 값이 덮어쓰이지만 D8(현재 버전 Drumal 8.2.5)에서는 오류가 있거나 좋은 기능이 없는 것 같은데...아마 Droper 8.3 이후에 수정될 것 같으니 그 전에 참아야 한다.참조)https://www.drupal.org/node/2408549
통합 Git 및 CMI
개발 환경에서 무대로 직접 자원을 펼칠 수 있다.
$ drush @stage ssh git fetch
$ drush @stage ssh git checkout develop
$ drush @stage config-import
\stage 섹션은 미리 drushrc입니다.php로 미리 정의해야 합니다.참조)http://handbook.deeson.co.uk/development/drupal8/
사이트 설정을 포지셔닝 환경에서 로컬 환경으로 통합합니다.
$ drush @dev config-merge @stage --git --message="#28941 bug fix."
어떻게 dev 환경과 정식 환경의 설정 차이를 흡수합니까?
가져오기/내보내기 시 -skip-modules를 사용하면 특정 모듈을 배제할 수 있기 때문에 각 사이트의 차이를 흡수할 수 있어야 한다.
아니면 skip-modules를 사용하지 않고 단순하게.gitignore를 통해 특정 YAML 파일을 제외하는 방법도 있습니다.
https://github.com/drush-ops/drush/issues/1820
피처 모듈 뭐가 좋아요?
D7의 워크플로우를 잘 알고 있다면 Feature 모듈을 선택하는 것도 좋습니다.
CMI는 이미 결정된 단위의 구성만 수용할 수 있지만, 피처는 구성 단위를 자유롭게 결정할 수 있다는 게 장점이다.
Feature 모듈은 화면상의 조작을 관리할 뿐만 아니라 Drush 명령도 지원하며 구성에 따라 가져올 수도 있고 모든 구성을 통일적으로 가져올 수도 있다.
한편, CMI는 지트와 친화력이 높아 지트와 협업해 작업흐름을 형성하기 쉽다는 점이 장점이다.
나는 프로젝트 구성원들 사이에서 CMI와 Feature를 결정하는 것이 좋다고 생각한다.
블록과 내용의 deburoi는 어떻게 합니까?
D7에서는 피처 모듈과 uid 모듈이 협력해 정보 블록과 내용도 파일로 만들었다.
D8에서는 Uid 기능이 코어에서 가져오기 때문에 Uid 모듈의 개발이 중단되고 D8 버전 피처 모듈과 Uid 모듈이 연합할 수 없습니다.앞으로feature 모듈이 내용 디버깅에 대응하는지도 알 수 없다.
2018년 발매 예정인 드롭8.5중 코어에 콘텐츠 디자인 기능이 탑재됐다는 소문이 돌았지만 2017년 D8에는 그런 기능이 없었다.
만약 D8을 이용하여 내용 디버깅을 가능한 모듈인'Deploy'나'Default Contentfor D8'으로 만들면 해결할 수 있으나 어느 것이든 알파 버전의 상태에서 아직 안정적인 동작이 없다.
Deploy
https://www.drupal.org/project/deploy
Default Content for D8
https://www.drupal.org/project/default_content
일시적인 대응 전략으로 데이터베이스 내용에 맞는 표를 가져가는 것도 고려할 수 있지만 다른 사람들은 어떻게 디버깅을 했을까.(좋은 방법이 있으면 꼭 알려주세요.)
Reference
이 문제에 관하여(Configuration Management in Drupal8), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/J_Sugar__/items/4272f88d7f2d355179b9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)