map deep merge does not work

Issue #479 invalid
叶萌 created an issue

my yaml content

.default: &default
  mysql: &mysql_default
    db_host: mysql.avatar2.test
    db_port: 3306
    db_user: &mysql_default_user default
    db_password: &mysql_default_password secret
  redis: &redis_default
    cluster:
      node:
        - host: rediscluster.avatar2.test
          port: 7000
        - host: rediscluster.avatar2.test
          port: 7001
        - host: rediscluster.avatar2.test
          port: 7002
        - host: rediscluster.avatar2.test
          port: 7003
        - host: rediscluster.avatar2.test
          port: 7004
        - host: rediscluster.avatar2.test
          port: 7005

system:
  erp:
    <<: *default
    mysql:
      db_name: erp

actual result

system:
  erp:
    mysql:
      db_name: erp

expect result

system:
  erp:
    mysql:
      db_name: erp
      db_host: mysql.avatar2.test
      db_port: 3306
      db_user: &mysql_default_user default
      db_password: &mysql_default_password secret

deep merge does not work

Comments (10)

  1. Andrey Somov

    The provided YAML document is invalid, it fails to parse. Can you please provide the complete document ?

  2. 叶萌 reporter

    .default: &default
      mysql: &mysql_default
        db_host: mysql.avatar2.test
        db_port: 3306
        db_user: &mysql_default_user default
        db_password: &mysql_default_password secret
      redis: &redis_default
        cluster:
          node:
            - host: rediscluster.avatar2.test
              port: 7000
            - host: rediscluster.avatar2.test
              port: 7001
            - host: rediscluster.avatar2.test
              port: 7002
            - host: rediscluster.avatar2.test
              port: 7003
            - host: rediscluster.avatar2.test
              port: 7004
            - host: rediscluster.avatar2.test
              port: 7005
    
    system:
      erp:
        <<: *default
        mysql:
          db_name: erp
    

    strange, I didn’t find any problems

    I delete the chinese characters, please try again

  3. Andrey Somov

    Give the YAML to any on-line editor. Chinese is no problem. The problem is missing &mysql_default_password

  4. Andrey Somov
    1. The project (snakeyamldemo) does NOT output anything related to YAML. It is not heplful
    2. Please create a pull request for THIS project with a test. It would be helpful

  5. Log in to comment